单引号或双引号的ruby编码约定

时间:2011-01-25 22:56:42

标签: ruby string syntax convention

我好好看看,但我找不到关于如何使用字符串引号的约定。我知道两者之间的区别,但在任何地方我都看到带有双引号的好代码,其中单曲就足够了。因此,我无法识别任何模式。我之所以这样问,是因为我想开始为开源做贡献,我想从一开始就养成一个好习惯。我宁愿尽可能多地使用单引号,也要加强我对两者之间差异的信心。

2 个答案:

答案 0 :(得分:13)

您可能已经知道的事情:

  • 单引号适用于简单的字符串。
  • 如果您需要评估字符串中的任何内容,则需要双引号。

no significant performance difference

使用双引号很有帮助,因此您可以使用撇号而不必担心在字符串中转义它们,从而使字符串看起来更“漂亮”。想一想"Don't do that" vs 'Don\'t do that'

有一种思路表明you should never escape in strings。如果你的字符串中需要单引号和双引号,最好使用heredoc或灵活的引号。最后,如果对字符串中的ruby代码进行评估并不是一个问题,我会在编码时使用该指南。

答案 1 :(得分:7)

我认为整个社区都没有强有力的约定。从我所看到的情况来看,似乎总是忽略单引号并始终使用双引号。在某些圈子中,甚至是约定,但是本地化的约定,而不是整个社区的约定。

就个人而言,每当我有几种不同的表达同一事物的方式时,我倾向于使用这些不同的方式来表达不同的语义。 (例如,我在块中使用大括号与do / end来区分用于副作用的块和用于返回值的块。)

所以,当我实际想要使用字符串插值或转义时,我只使用双引号,否则我使用单引号。这样,当我看到一个字符串时,我可以立刻告诉他们没有有趣的业务,并且里面没有隐藏的代码。

但是,我很务实。我非常喜欢"It's a string!"而不是'It\'s a string!'%q[It's a string!]