你喜欢哪种风格的Rubystring引用?

你喜欢哪种风格的Rubystring引用? 直到现在,我一直使用'single quotes'除非string包含特定的转义序列或插值,在这种情况下,我显然必须使用"double quotes"

但是,真的有什么理由不使用双引号string吗?

如果你不得不使用双引号,请不要使用双引号。 不要陷入“单双引号”陷阱。 Ruby对string文字的任意分隔符有很好的支持:

网站镜像 – https://web.archive.org/web/20160310224440/http://rors.org/2008/10/26/dont-escape-in​​-strings

原始网站 – http://rors.org/2008/10/26/dont-escape-in​​-strings

除非需要插值,否则我总是使用单引号。

为什么? 它看起来更好。 当你在屏幕上有很多东西的时候,大量的单引号可以减less大量的双引号引起的“视觉混乱”。

我想指出的是,这并不是我刻意决定要做的事情,而是为了实现更好看的代码而随着时间的推移而逐渐发展起来的。

偶尔我会使用%q或%Q,如果我需要在线报价。 我只用过一次或两次heredocs。

像许多程序员一样,我尽可能地具体实践。 这意味着我尽可能使代码尽可能简单,尽可能使编译器尽可能less地工作。 所以对于string,我使用最简单的方法来满足我对该string的需求。

 <<END For strings containing multiple newlines, particularly when the string is going to be output to the screen (and thus formatting matters), I use heredocs. END %q[Because I strongly dislike backslash quoting when unnecessary, I use %Q or %q for strings containing ' or " characters (usually with square braces, because they happen to be the easiest to type and least likely to appear in the text inside).] "For strings needing interpretation, I use %s."%['double quotes'] 'For the most common case, needing none of the above, I use single quotes.' 

我对程序提供的语法突出显示质量的第一个简单testing是看看它如何处理所有引用方法。

我使用单引号,除非我需要插值。 当你需要在另一个方向上进行插值时,稍后改变的麻烦是很麻烦的:当你发现在你的string中有一个#或者一个\导致你没有进行转义的时候,打算。

默认为单引号的优点是,在采用这种约定的代码库中,引用types作为是否期望插值expression式的可视提示。 当编辑器或IDE以不同的方式突出显示两个stringtypes时,这更为明显。

对于多行string,我使用%{…..}语法。

我通常使用双引号,除非我特别需要禁用转义/插值。

我看到两个论点:

大多使用双引号:

  • githubruby风格指导方针总是使用双引号:

在这里输入图像说明

  • 如果search符合引用,search“foobar”会更容易searchstringfoobar。 但是,我不是。 所以我search['“] foobar ['”]打开regexps。

对于使用单双引号的组合:

  • 知道是否需要查找string插值。
  • 可能稍微快一点(虽然这么轻微,但不足以影响github风格指南)。

我曾经使用单引号,直到我知道我需要插值。 然后我发现,当我回去的时候,我浪费了很多时间,不得不把一些单引号换成双引号。 性能testing显示使用双引号没有可测量的速度影响,所以我主张总是使用双引号。

唯一的例外是在replacestring中使用带反向引用的sub / gsub。 那么你应该使用单引号,因为它更简单。

 mystring.gsub( /(fo+)bar/, '\1baz' ) mystring.gsub( /(fo+)bar/, "\\1baz" ) 

我使用单引号,除非我需要插值,或者string包含单引号。

不过,我刚刚从德扬的回答中学到了任意的分隔技巧,我觉得这很棒。 =)