2011-03-09 50 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