¿Cuál es el equivalente de Ruby de `s =“ de Python? Hola,% s. ¿Dónde está% s? “% (” John “,” Mary “)`

En Python, este modismo para el formato de cadenas es bastante común

s = "hello, %s. Where is %s?" % ("John","Mary") 

¿Cuál es el equivalente en Ruby?

La forma más fácil es la interpolación de cadenas . Puedes inyectar pequeñas piezas de código Ruby directamente en tus cuerdas.

 name1 = "John" name2 = "Mary" "hello, #{name1}. Where is #{name2}?" 

También puedes hacer cadenas de formato en Ruby.

 "hello, %s. Where is %s?" % ["John", "Mary"] 

Recuerda usar corchetes allí. Ruby no tiene tuplas, solo matrices, y éstas usan corchetes.

En Ruby> 1.9 puedes hacer esto:

 s = 'hello, %{name1}. Where is %{name2}?' % { name1: 'John', name2: 'Mary' } 

Ver los documentos

Casi de la misma manera:

 irb(main):003:0> "hello, %s. Where is %s?" % ["John","Mary"] => "hello, John. Where is Mary?" 

En realidad casi lo mismo

 s = "hello, %s. Where is %s?" % ["John","Mary"]