我正在编写一个方法来将另一个方法作为类的一部分来包装。它需要接受和传递任意数量的参数。将未知数量的参数传递给一个ruby函数
喜欢的东西...
def do(*things)
old_method(things)
end
除了这不会起作用,因为OLD_METHOD需要传递的东西阵列作为独立参数,而不是作为一个数组的内容。
我只是不能想办法到Ruby语法中做到这一点...
我正在编写一个方法来将另一个方法作为类的一部分来包装。它需要接受和传递任意数量的参数。将未知数量的参数传递给一个ruby函数
喜欢的东西...
def do(*things)
old_method(things)
end
除了这不会起作用,因为OLD_METHOD需要传递的东西阵列作为独立参数,而不是作为一个数组的内容。
我只是不能想办法到Ruby语法中做到这一点...
您可以使用:
def do(*things)
old_method(*things)
end
这是一个图示操作,例如见What does the (unary) * operator do in this Ruby code?或What's the splat doing here?
相同的方式,得到的参数,old_method(*things)
。