2012-08-01 84 views
1

使用单引号的红宝石比双引号的速度快,因为我们可以在消息中看到:Is there a performance gain in using single quotes vs double quotes in ruby?为什么大家都用双引号而不是简单的引号?

那么,为什么每个人都使用双引号(或两者)?

一些例子:

(我知道,这不是每个人,但多数。)

编辑1:插值是没有理由!

双引号并不总是与插值或有什么特别喜欢这个,在西纳特拉:

it "defines HEAD request handlers with HEAD" do 
+0

我下面回答,不过这也是一个欺骗的问题,请参见http://stackoverflow.com/questions/1836467/is-there-a -performance-gain-in-using-single-quotes-vs-double-quotes-in-ruby获取更多信息 – 2012-08-01 13:55:43

回答

6

双引号允许你做插值:"Number of users : #{@count_user}"

加考虑看看的基准,我会说,充其量也没关系,开销非常小,一些基准实际上是更快用双引号......

+0

答案是:差异非常小。我们只是不在乎。这是用户首选项。 – Dougui 2012-08-01 14:04:45

+0

没有性能差异,因为解析后两者都是相同的。 – 2012-08-01 16:13:14

2

原因之一是,串插在双引号支持,但不是单引号。

例如:

some_var = 15 
"I have #{some_var} cats" 
# => "I have 15 cats" 

'I have #{some_var} cats" 
# => "I have \#{some_var} cats" 

我个人比较喜欢单引号时可能的,因为我觉得他们看起来更干净。但是字符串插值是使用双引号的一个非常重要的原因。

关于性能问题,它是如此微不足道,它实际上是一个偏好问题而不是性能问题。

4

双引号允许进行字符串插值,单引号不会评估双引号内的任何内容。例如,双引号可以让你有转义字符,单引号不会!

"he said \n hello" 

将导致2线,而

'he said \n hello' 

将导致在它的中间“\ n”字符串

0

我不知道如果你真的读线程正确,但@zetetic实际上发现,使用双引号稍快。尽管如此,这项测试已经完成了超过100万次的任务,因此在这方面它们的速度基本相同。

这一切都归结为偏好。很多人来自语言,单引号是不可能的,所以他们习惯用双引号。这一切都是偏好的问题。

0

它已被回答和接受,其中一些重复其他,但我的2¢值。

  1. 使用双引号意味着如果您以后想添加需要插入到字符串中的某些内容,则可以在不更改引号的情况下这样做。
  2. 确实需要插值的字符串和不需要插值的字符串之间的一致性。
  3. 能够包含所有英文字符串,例如。 “不要”,“吉姆”不必逃避它,或者改变引号。
  4. 嵌入\逃逸字符像\ n和\ t串
相关问题