我正在編寫一個方法來將另一個方法作爲類的一部分來包裝。它需要接受和傳遞任意數量的參數。將未知數量的參數傳遞給一個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)
。