2011-03-09 82 views

回答

35

def f(*)具有如def f(*args)不同之處在於它不命名匹配替換的參數數組相同的效果,。如果您希望函數接受任意數量的參數,但實際上並不需要在函數中引用它們,例如,如果您重寫某個方法,但是調用super而不傳遞顯式參數列表,則可以使用它導致原始參數被傳遞給super。您也可以編寫def f(a, b, *)

+0

+1,謝謝!你有什麼引用或權威?它似乎是_Not很好宣傳_(tm)。 – pilcrow 2011-03-09 17:34:17

+1

它沒有被很好地公開,因爲通常我們會使用'(* args)'。這是Ruby的方式。 – 2011-03-09 19:34:50

+0

@pilcrow:有論點但不使用任何這些參數會產生輕微的代碼味道,所以不會被公開。 – 2011-03-09 22:37:58