2008-11-10 67 views
46

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

但是,是否真有什么理由不使用双引号字符串?

回答

8

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

31

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

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

我想说明的是,这并不是我刻意决定要做的事情,只是随着时间的推移,我试图实现更好看的代码。

偶尔我会使用%q或%Q,如果我需要行内引号。我只用过一次或两次heredocs。

+0

单引号也更易于输入:p – sigjuice 2016-09-02 17:13:20

1

我使用单引号,除非我需要插值,或字符串中包含单引号。

但是,我刚刚从德扬的回答中学到了任意的分隔技巧,我认为它很棒。 =)

5

我曾经使用单引号,直到我知道我需要插值。然后我发现,当我回去时,我浪费了很多时间,不得不将单引号改为双引号。性能测试显示使用双引号没有可衡量的速度影响,所以我主张始终使用双引号。

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

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

我使用单引号除非我需要插值。当你需要向另一个方向插值时,稍后改变的麻烦是很麻烦的:当你发现在你的字符串中有一个#或一个\导致了你没有注意到的转义时,你必须从double改变为single。打算。

默认为单引号的优点是,在采用此约定的代码库中,引用类型用作可视插件,以确定是否期望插值表达式。当编辑器或IDE以不同的方式突出显示两个字符串类型时,这会更加明显。

对于多行字符串,我使用%{.....}语法。

27

像许多程序员一样,我尽量保持具体和实用。这意味着我尽可能简化代码,尽力使编译器尽可能少地工作。所以对于字符串,我使用最简单的方法来满足我对该字符串的需求。

<<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.' 

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

6

我看到两个参数:

对于大部分使用双引号:

enter image description here

  • 它更容易通过搜索搜索字符串foobar “foobar”,如果你符合报价。但是,我不是。所以我搜索['“] foobar ['”]开启regexps。

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

  • 知道,如果你需要寻找的串插。
  • 可能稍微快一点(尽管如此轻微,但不足以影响github风格指南)。