在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中都尝试过,并取得了成功。
为什么这是可行的?翻译人员在这里做什么?
发布于 2012-04-10 23:35:46
根据Flanagan和Matsumoto的Ruby编程语言:
当要插入到字符串文字中的表达式只是对全局变量、实例变量或类变量的引用时,可以省略大括号。
因此,下面的方法应该都有效:
@var = "Hi"
puts "#@var there!" #=> "Hi there!"
@@var = "Hi"
puts "#@@var there!" #=> "Hi there!"
$var = "Hi"
puts "#$var there!" #=> "Hi there!"
https://stackoverflow.com/questions/10091156
复制相似问题