Подтвердить что ты не робот

Голая звездочка в качестве параметра в определении метода: def f (*)

Я знаю, что это значит:

def f(*args)
  ...
end

Но что это значит и почему вы хотите его использовать? Может ли он отображаться и с именованными параметрами?

def f(*)
  ...
end
4b9b3361

Ответ 1

def f(*) имеет тот же эффект, что и def f(*args), за исключением того, что он не называет массив аргументов globbed. Вы можете использовать его, если хотите, чтобы функция принимала любое количество аргументов, но на самом деле не нужно ссылаться на них внутри функции - например, если вы переопределяете метод, но вызываете super, не передавая явный список аргументов, в результате чего исходные аргументы передаются на super.

Вы также можете написать def f(a, b, *).