Quel est l’équivalent Ruby de Python `s = ‘hello,% s. Où est% s? ”% (“ John ”,“ Mary ”)`

En Python, cet idiome pour le formatage de chaînes est assez courant

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

Quel est l’équivalent en Ruby?

Le moyen le plus simple est l’ interpolation de chaînes . Vous pouvez injecter de petits morceaux de code Ruby directement dans vos chaînes.

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

Vous pouvez également faire des chaînes de format en Ruby.

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

N’oubliez pas d’utiliser des crochets ici. Ruby n’a pas de tuples, juste des tableaux, et ceux-ci utilisent des crochets.

Dans Ruby> 1.9, vous pouvez le faire:

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

Voir les docs

Presque de la même manière:

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

En fait presque la même chose

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