Rubyで文字列補間を使用する適切な方法は次のとおりです。
name = "Ned Stark"
puts "Hello there, #{name}" #=> "Hello there, Ned Stark"
それは私がいつもそれを使うつもりである方法です。
ただし、Rubyの文字列補間でoddに気づきました。文字列の補間は、インスタンス変数に関して中括弧なしで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の両方で成功させて試しました。
なぜこれが機能するのですか?ここで通訳は何をしていますか?
The Ruby Programming Languageによると、フラナガンと松本:
文字列リテラルに補間される式が単にグローバル変数、インスタンス変数、またはクラス変数への参照である場合、中括弧は省略できます。
したがって、次のすべてが機能するはずです。
@var = "Hi"
puts "#@var there!" #=> "Hi there!"
@@var = "Hi"
puts "#@@var there!" #=> "Hi there!"
$var = "Hi"
puts "#$var there!" #=> "Hi there!"