Ruby 编码规范:字符串使用单引号还是双引号?

8
我仔细查看了一下,但我找不到有关如何使用字符串引号的惯例。我知道两者之间的区别,但是我在所有看到好的代码中都看到双引号,而单引号就足够了。因此,我无法识别任何模式。我之所以问这个问题,是因为我想开始为开源项目做贡献,并且想从一开始就养成好习惯。我更愿意尽可能多地使用单引号,也为了增强我对两者之间差异的信心。

1
我最近正在接受 github ruby styleguide ,底部的字符串约定。 - ecoologic
现在我正在使用Airbnb Ruby风格指南 - ecoologic
2个回答

14

您可能已经知道的:

  • 简单字符串使用单引号就可以了。
  • 如果需要在字符串内评估任何内容,则需要使用双引号。

没有显着的性能差异

使用双引号是有帮助的,这样您就可以使用撇号而不必担心在字符串内转义它们,从而使代码中的字符串看起来更加“漂亮”。考虑 "Don't do that" vs 'Don\'t do that'

有一种观点认为您永远不应该在字符串中转义。如果您需要在字符串内使用单引号和双引号,则最好使用heredoc或灵活的引号。最终,如果在字符串内评估Ruby代码不是问题,请让这个指导您在编码时需要使用什么。


9
我认为整个社区内并没有强烈的惯例。据我所见,似乎存在一种偏向于完全忽略单引号而总是使用双引号的偏见。在某些圈子中,这甚至是一种惯例,但只是一种局部惯例,而不是整个社区的惯例。
就个人而言,每当我有几种不同的方式来表达相同的事情时,我倾向于使用这些不同的方式来传达不同的语义。(例如,在块中使用花括号 vs. do/end 来区分用于副作用和用于返回值的块。)
因此,我只在实际想要使用字符串插值或转义时才使用双引号,否则我使用单引号。这样,当我看到一个字符串时,我可以立即知道其中没有什么奇怪的东西,也没有隐藏在��中的代码。
不过,我是讲究实用的。我非常喜欢 "It's a string!" 胜过于 'It\'s a string!'%q[It's a string!]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接