【问题标题】:Why does Rubymine suggests I use single-quotes over double-quotes on strings?为什么 Rubymine 建议我在字符串上使用单引号而不是双引号?
【发布时间】:2014-03-18 03:28:30
【问题描述】:

每次我使用双引号字符串时,都会收到这样的建议:

当我单击灯泡图标时,我可以选择将该字符串转换为单引号字符串。

有人能解释一下为什么单引号字符串比双引号字符串更受欢迎吗?

【问题讨论】:

    标签: ruby rubymine


    【解决方案1】:

    如果字符串中没有插值,则首选单引号。 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
    • 对@Devin_Brown 的帖子稍作修正。 RubyMine 的最新版本在此处具有首选项:首选项 > 编辑器 > 检查 > Ruby > 双引号字符串
    • 这个检查默认是开启的,我相信它必须默认关闭。发现它在我打开的每个新 Ruby 项目中都很活跃,这太烦人了。
    【解决方案2】:

    使用是一种性能差异,因此 ruby​​mine(以及大多数社区)在您不进行插值时推荐使用单引号。

    性能差异不再存在。 http://viget.com/extend/just-use-double-quoted-ruby-strings

    您可以禁用警告:

    Preferences > Editor > Inspections > Ruby > Double quoted string

    很遗憾,您无法反转警告并显示单引号字符串的警告。

    【讨论】:

    • 感谢您解释如何摆脱 g'dmn 错误
    【解决方案3】:

    单引号将保留转义字符,例如 \n,而这些字符将转义双引号。

    我目前没有安装 RubyMine,因为我的试用期已用完,但我敢打赌,如果您更喜欢使用双引号并且建议困扰您,您可以在首选项中更改此设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 2011-05-18
      • 1970-01-01
      • 2019-01-25
      相关资源
      最近更新 更多