在 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 中都成功地尝试过。
为什么这行得通?口译员在这里做什么?