2011-05-29 48 views
6

我见过不同的人使用不同类型的大括号/括号。我在脚本控制台中试用了它们,它们都可以工作。为什么他们都工作,并且它使用哪个?为什么在百分比符号中使用不同的分隔符?

%w|one two| 
%w{one two} 
%w[one two] 
%w(one two) 

实际上,可以使用更多的变化字符。可以使用除=之外的任何非字母数字字符。

%w!a! 
%[email protected]@ 
%w#c# 
%w$d$ 
%w%e% 
%w^f^ 
%w&g& 
%w*h* 
%w(i) 
%w_j_ 
%w-k- 
%w+l+ 
%w\m\ 
%w|n| 
%w`o` 
%w~p~ 
%w[q] 
%w{r} 
%w;s; 
%w:t: 
%w'u' 
%w"v" 
%w,w, 
%w<x> 
%w.y. 
%w/z/ 
%w?aa? 
+1

您错过了很多更多。我添加了整个列表。另请注意,这不仅适用于'%w'。它适用于'%','%Q','%q','%x','%r','%w','%W','%s'。 – sawa 2011-05-29 19:50:31

+0

通常我会尝试选择类似普通字符串'''和'''或类似'[',']'或'(',')'的匹配分隔符。有时候你必须选择一些非常抽象的,但是试着坚持一些更常见/正常的事情。 – 2011-05-30 00:33:27

回答

10

没有区别。灵活性的原因是,您可以选择不会出现在您的%w()字符串中的分隔符。

+7

我使用'[]',因为它使得它更清晰,结果是一个Array。 – 2011-05-29 19:02:43

5

你可以选择你自己的分隔符。选择一个可以让你不必转义角色的人。

0

没有区别,只是多行字符串的个人偏好。有些人喜欢用...

<<eos 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor 
    incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud. 
eos 

只要开始和结束是相同的,那么你很好。

+0

如果''''在那里? – Tom 2011-05-29 19:11:39

相关问题