Die richtige Methode zur Verwendung der Zeichenfolgeninterpolation in Ruby lautet wie folgt:
name = "Ned Stark"
puts "Hello there, #{name}" #=> "Hello there, Ned Stark"
So will ich es immer benutzen.
Ich habe jedoch etwas Seltsames in Rubys String-Interpolation bemerkt . Ich habe festgestellt, dass die String-Interpolation in Ruby ohne die geschweiften Klammern in Bezug auf Instanzvariablen funktioniert. Beispielsweise:
@name = "Ned Stark"
puts "Hello there, #@name" #=> "Hello there, Ned Stark"
Und dass es nicht funktioniert, dasselbe wie eine Nicht-Instanz-Variable zu versuchen.
name = "Ned Stark"
puts "Hello, there, #name" #=> "Hello there, #name"
Ich habe dies sowohl in 1.9.2 als auch in 1.8.7 mit Erfolg versucht.
Warum funktioniert das? Was macht der Dolmetscher hier?
quelle