我試圖採取的方法的方塊參數,並打開內容(符號的陣列)和它做成一個數組。例如:紅寶石塊到陣列
def sequence(&block)
# ?
end
sequence do
:foo,
:bar,
:foobar
end # => [:foo, :bar, :foobar]
我知道這將是容易只是有一個數組作爲sequence
方法的參數,但我想留在另一種方法是一致的。
我試圖採取的方法的方塊參數,並打開內容(符號的陣列)和它做成一個數組。例如:紅寶石塊到陣列
def sequence(&block)
# ?
end
sequence do
:foo,
:bar,
:foobar
end # => [:foo, :bar, :foobar]
我知道這將是容易只是有一個數組作爲sequence
方法的參數,但我想留在另一種方法是一致的。
這句法不是在Ruby中不允許的,所以很遺憾這是不可能的,因爲代碼甚至不會讓過去的解析器。
好了,不回答確切的問題,我想你和dirk知道這一點,但...
如果有人想一個Array
作爲參數,他們的搜索,導致他們在這裏,紅寶石確實有基本具備相似功能東西給你:
def f *x
x
end
p f :foo,
:bar,
:foobar
# => [:foo, :bar, :foobar]
雖然你建議的語法不會通過一個解析器,也有一些調整:
def sequence(&block)
yield
end
sequence do [
:foo,
:bar,
:foobar
] end # => [:foo, :bar, :foobar]
sequence do _=
:foo,
:bar,
:foobar
end # => [:foo, :bar, :foobar]