En Python, vous pouvez le faire:Comment émuler les paramètres printf de Python dans Ruby?
print "Hi! I'm %(name)s, and I'm %(age)d years old." % ({"name":"Brian","age":30})
Ce qui est le plus proche, plus simple langage Ruby pour reproduire ce comportement? (Pas monkeypatching la classe String, s'il vous plaît.)
EDIT: Une des ceci est des avantages vraiment excellents de que vous pouvez stocker la chaîne pré-traitée dans une variable et l'utiliser comme un « modèle », comme si :
template = "Hi! I'm %(name)s, and I'm %(age)d years old."
def greet(template,name,age):
print template % ({"name":name,"age":age})
Ceci est évidemment un exemple trivial, mais il y a beaucoup d'utilité pour pouvoir stocker une telle chaîne pour une utilisation ultérieure. La convention "Hi! I'm #{name}"
de Ruby est similaire, mais l'évaluation immédiate la rend moins polyvalente.
Veuillez ne pas downvoter les réponses suggérant la technique #{var}
, d'où elles viennent avant cette édition. (Noyau idée aléatoire: Peut-être que les réponses devraient être protégées des votes si un auteur de la question les marque comme "obsolètes" ...?)
Ne fonctionne pas avec Ruby 1.9. –
En fait, cela fonctionne si vous changez les clés dans le hachage 'values' en Symboles au lieu de Strings:' values = {: hello => 'monde',: monde => 'bonjour'} '. Voir la dernière phrase dans [@ knut's answer] (http://stackoverflow.com/a/12563022/504611). –
Vous avez raison @VickyChijwani –