Il modo corretto di utilizzare l'interpolazione di stringhe in Ruby è il seguente:
name = "Ned Stark"
puts "Hello there, #{name}" #=> "Hello there, Ned Stark"
Questo è il modo in cui intendo usarlo sempre.
Tuttavia, ho notato qualcosa di strano nell'interpolazione delle stringhe di Ruby. Ho notato che l'interpolazione delle stringhe funziona in Ruby senza le parentesi graffe per quanto riguarda le variabili di istanza. Per esempio:
@name = "Ned Stark"
puts "Hello there, #@name" #=> "Hello there, Ned Stark"
E che provare la stessa cosa come una variabile non di istanza non funziona.
name = "Ned Stark"
puts "Hello, there, #name" #=> "Hello there, #name"
L'ho provato con successo sia nella 1.9.2 che nella 1.8.7.
Perché funziona? Cosa ci fa l'interprete qui?