在数组文字“%w”中将单词组合在一起

Grouping words together in array literal `%w`

有什么方法可以将多个单词组合成 %w(foo bar) 符号,得到如下所示的结果数组?

%w(foo bar foo or bar foo and bar) # => ["foo", "bar", "foo or bar", "foo and bar"]

是的,有办法。您可以使用 \:

转义空格
%w(foo bar foo\ or\ bar foo\ and\ bar)
#=> ["foo", "bar", "foo or bar", "foo and bar"]

但我不确定这是否提高了可读性...

可以使用 \ 作为 space 字符:

%w(foo bar foo\ or\ bar foo\ and\ bar) => ["foo", "bar", "foo or bar", "foo and bar"]

不使用 %w 符号,但具有类似的精神,使用 | 而不是 space 作为分隔符:

"foo|bar|foo or bar|foo and bar".split("|")