En Python, cet idiome pour le formatage de chaîne est assez fréquentQuel est l'équivalent Ruby de `s =" hello,% s de Python Où est% s? " % ("John", "Mary") `
s = "hello, %s. Where is %s?" % ("John","Mary")
Quel est l'équivalent en Ruby?
En Python, cet idiome pour le formatage de chaîne est assez fréquentQuel est l'équivalent Ruby de `s =" hello,% s de Python Où est% s? " % ("John", "Mary") `
s = "hello, %s. Where is %s?" % ("John","Mary")
Quel est l'équivalent en Ruby?
Le plus simple est string interpolation. 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 formatage dans 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.
J'utiliserais définitivement le premier, il me semble plus lisible – David
Le premier ne fonctionnera pas, le # {} cherche une variable, donc dans ce cas ce serait l'impression de la variable John, pas de la chaîne " John". La seconde semble correcte. –
Bon point Jason, je vais l'éditer pour le rendre plus clair. – AboutRuby
presque de la même façon:
irb(main):003:0> "hello, %s. Where is %s?" % ["John","Mary"]
=> "hello, John. Where is Mary?"
Dans Ruby, les crochets signifient-ils un tuple? Je pensais que les crochets sont des listes ... – TIMEX
@TIMEX: Cette question vous aidera: http://stackoverflow.com/questions/525957/tuples-in-ruby –
Ruby n'a pas de tuples (du moins pas forgé dans la langue). Ouais, c'est un tableau ("list" en Python devrait vraiment s'appeler arrays ...). – delnan
En fait, presque le même
s = "hello, %s. Where is %s?" % ["John","Mary"]
Dans Ruby 1.9, vous pouvez le faire:
s = "hello, %{name1}. Where is %{name2} ?" % { :name1 => 'John', :name2 => 'Mary' }
Edit: ajouté manquant ':' s
Référence: http://ruby-doc.org/core-1.9.3/String.html
: nom1 : nom2 Non? – masnun
J'ai édité dans l'équivalent * Idomatic Ruby * là - mais maintenant je remarque que la réponse acceptée le fait déjà - supprimé le 'edit': -/ – toong
Lorsque vous utilisez un hachage avec l'opérateur string%, si la clé référencée dans le La chaîne de format n'est pas présente, vous obtiendrez une KeyError. – user1164178
Il n'y a pas de chaîne concaténation, seule la mise en forme de chaîne. Et google y répondra plus vite que même jamais ... il m'a fallu environ 20 secondes pour découvrir que vous pouvez faire exactement la même chose avec Ruby. – delnan
Vous ne demandez pas de concaténation, votre demande de formatage/substitution. Vous devriez changer votre question. Soit dit en passant, dans ruby, la concaténation est effectuée avec + ou << opérateurs. – David