在ruby中使用单引号比双引号更快,正如我们在消息中看到的那样:Is there a performance gain in using single quotes vs double quotes in ruby?。
那么为什么每个人都使用双引号(或两者)???
一些例子:
(我知道,除了大多数人之外并不是每个人。)
编辑1:插值不是原因!
在Sinatra中,双引号并不总是插值或类似的任何特殊内容:
it "defines HEAD request handlers with HEAD" do
答案 0 :(得分:7)
双引号允许您进行插值:"Number of users : #{@count_user}"
另外看一下基准测试,我会说最好不要紧,开销很小,一些基准实际上用双引号更快......
答案 1 :(得分:5)
双引号允许字符串插值,单引号不会在双引号内评估其中的任何内容。例如,双引号将允许您使用转义字符和单引号不会!
"he said \n hello"
将导致2行
'he said \n hello'
将导致在其中间带有'\ n'的字符串
答案 2 :(得分:2)
一个原因是双引号支持字符串插值,但不支持单引号。
例如:
some_var = 15
"I have #{some_var} cats"
# => "I have 15 cats"
'I have #{some_var} cats"
# => "I have \#{some_var} cats"
我个人更喜欢单引号,因为我认为它们看起来更干净。但字符串插值是使用双引号的一个非常重要的原因。
关于性能问题,它是如此微不足道,以至于它实际上是一个偏好而不是性能问题。
答案 3 :(得分:0)
我不知道你是否真的正确地读过那个帖子,但@zetetic实际上发现使用双引号会稍快一些。尽管如此,这项测试完成了超过100万次任务,因此在这方面他们的速度基本相同。
这一切都取决于偏好。很多人来自单语言不可能的语言,所以他们习惯于双引号。这完全是一个偏好。