2014-10-08 30 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
相关问题