将splatted参数列表传递给嵌套函数

时间:2013-10-04 16:30:27

标签: ruby

我有一组嵌套函数,每个函数都有一个任意的参数列表:

def foo *args
  bar args
end

def bar *args
  baz args
end

def baz *args
end

使用像:a => :foo, :b => :bar这样的一组args调用foo,在splat之后给我们一个单元素数组:

[{:a => :foo, :b => :bar}]

然后将其传递给嵌套函数,再次通过splat,将其转换为:

[[{:a => :foo, :b => :bar}]]

将args [0]传递给嵌套函数是否合适,或者是否存在我应该使用的某种反向splat?

1 个答案:

答案 0 :(得分:1)

如果你想将splatted参数传递给另一个函数,只需再次splat它们(当在方法调用中使用时,操作符的行为方式相反(与方法定义相比))

def foo(*args)
  bar *args
end