1
說我有一個需要三個參數的方法的方式來輸入多個參數到一個方法:是否有通過陣列
[a, b, c]
:
def foo(a, b, c)
end
而且我說在一個陣列參數是否有使用數組作爲參數,等等的瑣碎或一個方法方式:
foo(array.some_method)
說我有一個需要三個參數的方法的方式來輸入多個參數到一個方法:是否有通過陣列
[a, b, c]
:
def foo(a, b, c)
end
而且我說在一個陣列參數是否有使用數組作爲參數,等等的瑣碎或一個方法方式:
foo(array.some_method)
可以使用splat operator:
foo(*array)
def foo(*bar)
end
美孚現在苛求的陣列作爲參數。你也可以讓它接受一個散列做
def foo(bar={})
end
splat操作符是否必須在方法的定義?我試圖使用庫類方法,所以我不能改變方法的簽名。 – 2013-04-09 16:38:12
不,這是'爆炸'數組以匹配現有方法簽名的一種方式,所以在您的示例中,您可以在不改變'foo'方法的情況下使用它 – pjam 2013-04-09 16:38:58
您是對的。儘管代碼導致了相當的功能:'Date.valid_date?(*'9666-96-96'.split(' - ')。map(&:to_i))'。我可能應該分成兩步。 – 2013-04-09 16:50:10