Ruby的字符串插值似乎与单引号和双引号的行为不同

时间:2015-03-10 22:25:43

标签: ruby string

当我使用字符串插值时,我注意到了一些奇怪的事情,我随意决定对我的字符串使用单引号,其中包含插值。但是,单引号似乎对字符串插值很奇怪。例如:

bob = 'bob'

puts 'hello #{bob}'
# The above prints out:
# hello #{bob}

奇怪的是,当我决定使用双引号时,字符串插值的结果是不同的:

bob = 'bob'

puts "hello #{bob}"
# The above prints out:
# hello bob

所以我的问题是:关于字符串插值的双引号应该与单引号不同,如果是这样,有什么特别的原因吗?

2 个答案:

答案 0 :(得分:1)

不同之处在于单引号没有字符串插值。

建议单引号用于不需要字符串插值的字符串,这并不能真正提供速度优势,更多的是样式指示,即你知道带有单引号的字符串是一个文字字符串。

答案 1 :(得分:1)

是的,答案是您不能将变量放在单引号字符串中,例如单引号字符串中不允许使用字符串插值。此外,您可能感兴趣,转义序列不适用于单引号字符串(除了转义单引号本身,如'don\'t')。

关于单引号和双引号的性能优势是否存在争议,但我not seeing any convincing cases