双引号与单引号
我是否应该在特定时间使用 ""
与 ''
?
我大部分时间都使用单引号,因为这样更容易输入,但我不确定是否应该这样做。
例如 get 'user/new'
与 get "user/new"
Is there a specific time when I should use ""
vs ''
?
I've been using single quotes most of the time because it's easier to type but I'm not sure if I should.
e.g. get 'user/new'
vs. get "user/new"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
评论(7)
Ruby 中的单引号 ''
和双引号 ""
之间在计算字符串的内容方面存在差异。
首先,我想澄清一下,在字符串的文字形式中,单或双引号之间的任何内容都会被评估为字符串对象,这是 Ruby String 类的一个实例。
因此,'stackoverflow'
和 “stackoverflow”
都将计算 String 类的实例没有任何区别。
区别
字符串的两种文字形式(单引号或双引号)之间的本质区别是双引号允许转义序列,而单引号则不允许!
创建的字符串文字单引号不支持字符串插值或转义序列。
一个简洁的例子是:
"\n" # will be interpreted as a new line
而
'\n' # will display the actual escape sequence to the user
用单引号进行插值根本不起作用:
'#{Time.now}'
=> "\#{Time.now}" # which is not what you want..
最佳实践
大多数 Ruby Linters 建议对字符串使用单引号文字,并且在字符串中使用双引号插值/转义序列的情况。
要回答您的问题,当您想要进行字符串插值时,必须使用 ""
:
a = 2
puts "#{a}"
否则请使用简单的引号。
另外,如果您想知道性能方面是否存在差异,有一个很好的 StackOverflow 上有关于这个的问题。
如果你真的是 RoR 新手,我强烈建议你拿起一本像样的 Ruby 书来学习基础知识语言。它将帮助您理解您在做什么(并且不会让您认为 Rails 很神奇)。我个人推荐The Well grounded Rubyist。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
" "
允许您进行字符串插值,例如:" "
allows you to do string interpolation, e.g.: