裸星号作为方法定义中的参数:def f(*)

时间:2011-03-09 17:15:03

标签: ruby parameters

我知道这意味着什么:

def f(*args)
  ...
end

但是这意味着什么,为什么要使用它呢?它也可以出现在命名参数中吗?

def f(*)
  ...
end

1 个答案:

答案 0 :(得分:37)

def f(*)def f(*args)具有相同的效果,除了它没有命名globbed参数数组。如果您希望函数接受任意数量的参数但实际上不需要在函数中引用它们,您可以使用它 - 例如,如果您重写方法但调用super而不传递显式参数列表,导致原始参数传递给super

你也可以写def f(a, b, *)