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