2014-10-08 61 views
0

製作一個DSL,我只是想知道是否有辦法讓方法接受一個數組而不將數組放在方括號中。允許接受一個數組的方法

例如,這個工程:

def foo args=[] 
    args.each { |arg| puts arg } 
end 
foo ['baz','boo','bing'] #=> 'baz','boo','bing' 

但我希望能夠foo的手它的參數沒有方括號:

foo 'baz','boo','bing' #=> 'baz','boo','bing' 

不是遊戲規則的改變,只是想知道如果這是可以做到:)

回答

6

是的!這就是所謂的「splat」操作符。它會把剩下的東西放在數組中。

def foo(*args) 
    args.each { |arg| puts arg } 
end 

> foo 'baz','boo','bing' 
baz 
boo 
bing 
2

你可以用圖示操作

像這樣做10
相關問題