【发布时间】:2012-04-10 14:58:47
【问题描述】:
在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 中都成功地尝试过。
为什么会这样?口译员在这里做什么?
【问题讨论】: