是否有一个特定的时间我应该使用“vs”?

我大部分时间都在使用单引号,因为它更容易输入,但我不确定我是否应该这样做。

例如get "user/new"和get "user/new"


当前回答

在这种情况下,怎么写都没有区别。它们是等价的。此外,你可能想要阅读更多的Ruby指南/教程:)

其他回答

除了插值之外,另一个区别是'转义序列'在单引号中不起作用

puts 'a\nb' # just print a\nb 
puts "a\nb" # print a, then b at newline 

你想要使用单引号的另一个原因是当你将正则表达式模式作为字符串传递时:

这个regex模式可以工作,因为在单引号中传递:

"123 ABC".match('\d')
=> #<MatchData "1">

这个正则表达式模式将失败,因为在双引号内传递(你必须双转义才能让它工作):

"123 ABC".match("\d")
=> nil

类似于打印中的答案“\n”,下面是另一种不同的情况

puts "\1"  -> get special character
puts '\1'  -> get \1

看起来*被转换成双引号转义字符,而不是单引号。 顺便说一下,在正则表达式中使用它会影响输出 例如, Str.gsub(/正则表达式/,'\1,\2')

在这种情况下,怎么写都没有区别。它们是等价的。此外,你可能想要阅读更多的Ruby指南/教程:)

" "允许你做字符串插值,例如:

world_type = 'Mars'
"Hello #{world_type}"