在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中都尝试了成功。
为什么这样做?口译员在做什么?
最佳答案
根据Flanagan和Matsumoto撰写的Ruby编程语言:
所以以下所有工作:
@var = "Hi"
puts "#@var there!" #=> "Hi there!"
@@var = "Hi"
puts "#@@var there!" #=> "Hi there!"
$var = "Hi"
puts "#$var there!" #=> "Hi there!"
关于ruby - 没有花括号时,为什么字符串插值在Ruby中起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10091156/