2011-01-25 52 views
6

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

+1

我最近拥抱[github ruby​​ styleguide](https://github.com/styleguide/ruby),字符串约定在底部 – ecoologic 2013-02-26 03:53:13

+0

现在我正在使用[Airbnb Ruby风格指南](https:// github。 COM /制作的Airbnb /红宝石)。 – ecoologic 2017-11-28 22:56:13

回答

5

我不认为在整个社区内都有很强的约定。从我所看到的情况来看,似乎有一种倾向于完全忽略单引号,并始终使用双引号。在一些圈子里,那甚至是一个约定,但是一个本地化的,而不是整个社区。就个人而言,无论何时我有几种不同的表达同一事物的方式,我倾向于使用这些不同的方式来表达不同的语义。 (例如,我使用花括号与在块do/end被用于它们的副作用和块被用于它们的返回值的块之间进行区分。)

所以,我只用双引号当我实际上想使用字符串插值或转义,否则我使用单引号。这样,当我看到一个字符串时,我可以立即知道没有有趣的事情在发生,而且它里面没有隐藏的代码。

虽然我很务实。我非常喜欢"It's a string!"超过'It\'s a string!'%q[It's a string!]

12

什么你可能已经知道:

  • 单引号就好了简单的字符串。
  • 如果您需要评估字符串内的任何内容,则需要双引号。

还有no significant performance difference

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

有一条思路,指出you should never escape in strings。如果在字符串中需要单引号和双引号,最好使用heredoc或灵活的引号。最后,如果在字符串内部评估Ruby代码不是一个问题,那么我会让它指导你编写代码时需要使用什么。