使用Ruby/Rails中字符串的单引号_ever_是否有任何优势?

Bob*_*ob. 6 ruby syntax ruby-on-rails

我理解Ruby中单引号和双引号之间的功能差异,但我想知道人们在两者之间有何不同的具体原因.在我看来,似乎你应该总是使用双引号,而不是考虑它.

我在研究这个主题时读过的一些理由......

  1. 除非需要双引号,否则请使用单引号.

  2. 单引号的性能优势非常非常小.

还有其他有趣的想法吗?(或者这可能是一个自由的例子,或者Ruby为没有一个正确的方式做某事而敞开大门......)

Jör*_*tag 10

我通常遵循以下规则:

如果不进行插值,切勿使用双引号(或%Q%W)

这样做的原因是,如果您正在尝试追踪错误或安全漏洞,您会立即知道在查看字符串的开头时,其中可能没有任何代码,因此该错误不在其中.

但是,我还遵循以下例外规则:

如果它们使代码更具可读性,则使用双引号

即我更喜欢

"It's time"
Run Code Online (Sandbox Code Playgroud)

过度

'It\'s time'
%q{It's time}
Run Code Online (Sandbox Code Playgroud)

从技术上讲,单引号字符串比双引号字符串解析的速度要快得多,但这是无关紧要的,因为

  • 程序只被解析一次,在启动期间,运行时性能没有差别
  • 性能差异确实非常小
  • 与解析Ruby的一些疯狂语法所花费的时间相比,解析字符串所花费的时间是无关紧要的

因此,您的问题的答案是:是的,有一个优点,即您可以立即发现字符串是否包含代码.