La bonne façon d'utiliser l'interpolation de chaîne dans Ruby est la suivante:
name = "Ned Stark"
puts "Hello there, #{name}" #=> "Hello there, Ned Stark"
C'est ainsi que j'ai l'intention de toujours l'utiliser.
Cependant, j'ai remarqué quelque chose d' étrange dans l'interpolation de chaînes de Ruby. J'ai remarqué que l'interpolation de chaîne fonctionne dans Ruby sans les accolades en ce qui concerne les variables d'instance. Par exemple:
@name = "Ned Stark"
puts "Hello there, #@name" #=> "Hello there, Ned Stark"
Et qu'essayer la même chose qu'une variable non-instance ne fonctionne pas.
name = "Ned Stark"
puts "Hello, there, #name" #=> "Hello there, #name"
J'ai essayé cela avec succès dans les versions 1.9.2 et 1.8.7.
Pourquoi ça marche? Que fait l'interprète ici?
la source