Ruby中的%w(don matt james)和%w[don matt james]之间有什么区别吗?
使用Ruby控制台,它们都输出一个数组,每个单词都作为元素。我很好奇为什么会有多种方法来做到这一点--以及每一种方式都应该如何使用。
发布于 2013-11-03 22:38:07
没有什么不同。任何单个非alpha数字字符或任何“配对”字符集都可以用作分隔符,如Programming/Syntax/Literals (参见“%表示法”)和rdoc.html#label-Percent+Strings中所述。
发布于 2013-11-03 22:39:02
这两个选项都可以,并产生相同的结果。在语法上甚至还有几个额外的变体:
%w'don matt james'
%w{don matt james}发布于 2013-11-04 02:09:26
对于您的特定示例,输出是相同的,但是有区别。分隔符自由的目的是允许文字中的不同字符不转义。如果使用某些字符作为分隔符,则不能在符号中使用它们而不转义。根据您可能拥有的内容,应该使用不同的分隔符。
["foo()", "bar()"]
%w(foo() bar()) # => error
%w[foo() bar()]
["foo[1]", "bar[5]"]
%w(foo[1] bar[5])
%w[foo[1] bar[5]] # => errorhttps://stackoverflow.com/questions/19759016
复制相似问题