假设有一个名为foo
的方法,它采用可变长度的参数。
def foo(*args)
# Implementation omitted
end
我想用bar
包装方法。
def bar(*args)
# Will call `foo` at some point
# `foo(args)` isn't satisfactory.
end
如何在foo
内拨打bar
,这样如果我使用bar
致电bar(1,2,3)
,又会调用foo(1,2,3)
?
一些限制因素是:
foo
的代码。 foo
和bar
应具有完全相同的签名。当然,我可以在foo(args)
内bar
进行操作。但如果是这种情况,对foo
来说,它将收到的是数组数组而不是数组。
感谢。
答案 0 :(得分:2)
使用splat运算符(*
)作为Blender评论:它将数组转换为参数。
def bar(*args)
foo(*args)
end