如何用':'打破%w'dog中的单词:cat:bird'w/o split

Mic*_*ant 0 ruby syntax

我试图这样做,%w'dog:cat:bird'但我希望将这些词分开的角色是:而不是像%w现在这样的空白.

我不想.split在实际代码中使用我使用一些不同的%习惯用于不同的需求,我想只使用一种语法.

Ale*_*x D 5

我刚刚查看了Matz和David Flanagan的"Ruby Programming Language",看来用%w创建的数组文字必须使用空格来分隔元素.如果你真的想拥有以":"分隔的字符串数组,并且你不想在代码中使用"split",我建议你定义一个自己的方法,它可以让你模拟所需的行为,也许是这样的:

class Object
  def w(str)
    str.split(":")
  end
end
Run Code Online (Sandbox Code Playgroud)

然后你可以这样写:

w'a:b:c'
Run Code Online (Sandbox Code Playgroud)