голая звездочка как параметр в определении метода: def f (*) - PullRequest
22 голосов
/ 09 марта 2011

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

def f(*args)
  ...
end

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

def f(*)
  ...
end

1 Ответ

37 голосов
/ 09 марта 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...