2013-03-03 202 views
1

我試圖採取的方法的方塊參數,並打開內容(符號的陣列)和它做成一個數組。例如:紅寶石塊到陣列

def sequence(&block) 
    # ? 
end 

sequence do 
    :foo, 
    :bar, 
    :foobar 
end # => [:foo, :bar, :foobar] 

我知道這將是容易只是有一個數組作爲sequence方法的參數,但我想留在另一種方法是一致的。

回答

3

這句法不是在Ruby中不允許的,所以很遺憾這是不可能的,因爲代碼甚至不會讓過去的解析器。

0

好了,不回答確切的問題,我想你和dirk知道這一點,但...

如果有人想一個Array作爲參數,他們的搜索,導致他們在這裏,紅寶石確實有基本具備相似功能東西給你:

def f *x 
    x 
end 

p f :foo, 
    :bar, 
    :foobar 

# => [:foo, :bar, :foobar] 
0

雖然你建議的語法不會通過一個解析器,也有一些調整:

def sequence(&block) 
    yield 
end 

sequence do [ 
    :foo, 
    :bar, 
    :foobar 
] end # => [:foo, :bar, :foobar] 

sequence do _= 
    :foo, 
    :bar, 
    :foobar 
end # => [:foo, :bar, :foobar]