【发布时间】:2014-03-18 03:28:30
【问题描述】:
每次我使用双引号字符串时,都会收到这样的建议:
当我单击灯泡图标时,我可以选择将该字符串转换为单引号字符串。
有人能解释一下为什么单引号字符串比双引号字符串更受欢迎吗?
【问题讨论】:
每次我使用双引号字符串时,都会收到这样的建议:
当我单击灯泡图标时,我可以选择将该字符串转换为单引号字符串。
有人能解释一下为什么单引号字符串比双引号字符串更受欢迎吗?
【问题讨论】:
如果字符串中没有插值,则首选单引号。 Ruby 输出单引号字符串的工作量会减少(理论上),这反过来会加快您的代码速度(再次在理论上)。这就是 RubyMine 推荐它的原因之一。
另一个原因是为了便于阅读。您可以在风格指南中阅读:Ruby Coding Style Guide
基准测试已经证明,与实际执行时间相比,使用单引号而不是双引号字符串的速度提升可以忽略不计。
答案最终归结为风格。要了解性能,请查看以下问题:Is there a performance gain in using single quotes vs double quotes in ruby?
【讨论】:
puts "Age: ${age}",RubyMine 会警告你没有插值,然后你会(希望)注意到你不小心使用了错误的符号($ 而不是#)。
Preferences > Inspections > Ruby > Double quoted string
使用是一种性能差异,因此 rubymine(以及大多数社区)在您不进行插值时推荐使用单引号。
性能差异不再存在。 http://viget.com/extend/just-use-double-quoted-ruby-strings
您可以禁用警告:
Preferences > Editor > Inspections > Ruby > Double quoted string
很遗憾,您无法反转警告并显示单引号字符串的警告。
【讨论】:
单引号将保留转义字符,例如 \n,而这些字符将转义双引号。
我目前没有安装 RubyMine,因为我的试用期已用完,但我敢打赌,如果您更喜欢使用双引号并且建议困扰您,您可以在首选项中更改此设置。
【讨论】: