我正在尝试在方法中获取块参数,并转换内容(符号数组)并将其转换为数组。例如:
def sequence(&block)
# ?
end
sequence do
:foo,
:bar,
:foobar
end # => [:foo, :bar, :foobar]
我知道在sequence
方法中将数组作为参数会更容易,但我试图与另一种方法保持一致。
答案 0 :(得分:3)
Ruby中不允许使用这种语法,所以不幸的是,这是不可能的,因为代码甚至不会通过解析器。
答案 1 :(得分:0)
好的,没有回答确切的问题,我想你和dirk知道这一点,但......
如果有人想要Array
作为参数并且他们的搜索引导他们在这里,Ruby确实有一个基本的功能,可以为你做类似的事情:
def f *x
x
end
p f :foo,
:bar,
:foobar
# => [:foo, :bar, :foobar]
答案 2 :(得分:0)
虽然你建议的语法不会通过解析器,但有一些调整:
def sequence(&block)
yield
end
sequence do [
:foo,
:bar,
:foobar
] end # => [:foo, :bar, :foobar]
sequence do _=
:foo,
:bar,
:foobar
end # => [:foo, :bar, :foobar]