首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在没有大括号的情况下,Ruby中的字符串插值可以正常工作?

为什么在没有大括号的情况下,Ruby中的字符串插值可以正常工作?
EN

Stack Overflow用户
提问于 2012-04-10 22:58:47
回答 1查看 37.3K关注 0票数 93

在Ruby中使用字符串插值的正确方法如下:

代码语言:javascript
复制
name = "Ned Stark"
puts "Hello there, #{name}" #=> "Hello there, Ned Stark"

这就是我打算一直使用它的方式。

然而,我在Ruby的字符串插值中注意到了一些奇怪的东西。我注意到,在Ruby中,字符串插值在实例变量方面不需要大括号。例如:

代码语言:javascript
复制
@name = "Ned Stark"
puts "Hello there, #@name" #=> "Hello there, Ned Stark"

尝试与非实例变量做同样的事情是行不通的。

代码语言:javascript
复制
name = "Ned Stark"
puts "Hello, there, #name" #=> "Hello there, #name"

我在1.9.2和1.8.7中都尝试过,并取得了成功。

为什么这是可行的?翻译人员在这里做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-10 23:35:46

根据Flanagan和Matsumoto的Ruby编程语言:

当要插入到字符串文字中的表达式只是对全局变量、实例变量或类变量的引用时,可以省略大括号。

因此,下面的方法应该都有效:

代码语言:javascript
复制
@var = "Hi"
puts "#@var there!"  #=> "Hi there!"

@@var = "Hi"
puts "#@@var there!" #=> "Hi there!"

$var = "Hi"
puts "#$var there!"  #=> "Hi there!"
票数 108
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10091156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档