当我使用字符串插值时,我注意到了一些奇怪的事情,我随意决定对我的字符串使用单引号,其中包含插值。但是,单引号似乎对字符串插值很奇怪。例如:
bob = 'bob'
puts 'hello #{bob}'
# The above prints out:
# hello #{bob}
奇怪的是,当我决定使用双引号时,字符串插值的结果是不同的:
bob = 'bob'
puts "hello #{bob}"
# The above prints out:
# hello bob
所以我的问题是:关于字符串插值的双引号应该与单引号不同,如果是这样,有什么特别的原因吗?
答案 0 :(得分:1)
不同之处在于单引号没有字符串插值。
建议单引号用于不需要字符串插值的字符串,这并不能真正提供速度优势,更多的是样式指示,即你知道带有单引号的字符串是一个文字字符串。
答案 1 :(得分:1)
是的,答案是您不能将变量放在单引号字符串中,例如单引号字符串中不允许使用字符串插值。此外,您可能感兴趣,转义序列不适用于单引号字符串(除了转义单引号本身,如'don\'t'
)。
关于单引号和双引号的性能优势是否存在争议,但我not seeing any convincing cases。