Rubyで文字列補間を使用する適切な方法は次のとおりです。
name = "Ned Stark"
puts "Hello there, #{name}" #=> "Hello there, Ned Stark"
それが私がいつも使っている方法です。
しかし、Rubyの文字列補間に何か奇妙なことに気づきました。文字列補間は、インスタンス変数に関して中括弧なしでRubyで機能することに気づきました。例えば:
@name = "Ned Stark"
puts "Hello there, #@name" #=> "Hello there, Ned Stark"
そして、非インスタンス変数と同じことを試みても機能しません。
name = "Ned Stark"
puts "Hello, there, #name" #=> "Hello there, #name"
私はこれを1.9.2と1.8.7の両方で成功させて試しました。
なぜこれが機能するのですか?通訳はここで何をしていますか?