8

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

4

2 回答 2

13

您可能已经知道的:

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

没有显着的性能差异

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

有一种思路表明您永远不应该在 strings 中转义。如果您需要在字符串中包含单引号和双引号,最好使用heredoc 或灵活引号。最后,如果评估字符串中的 ruby​​ 代码不是一个问题,我会让那个指导你在编码时需要使用什么。

于 2011-01-25T23:17:29.223 回答
7

我不认为整个社区内有一个强有力的约定。从我所见,似乎完全忽略单引号并总是使用双引号。在某些圈子里,这甚至一种惯例,而是一种本地化的惯例,而不是整个社区的惯例。

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

所以,当我真正想使用字符串插值或转义时,我只使用双引号,否则我使用单引号。这样,当我看到一个字符串时,我可以立即判断出没有有趣的事情发生,并且其中没有隐藏代码。

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

于 2011-01-26T00:06:55.433 回答