почему pro c не нужно иметь значение по умолчанию, если это необязательный аргумент в ruby - PullRequest
1 голос
/ 14 апреля 2020

В ruby, если аргумент является необязательным, мы должны дать этому аргументу значение по умолчанию в определении, определение будет выглядеть следующим образом:

def my_function(var = 1)
end

Однако, если у меня есть определение функции, подобное ниже, похоже, что эта функция должна получить один аргумент, и этот аргумент является pro c, мой вопрос: почему нет ошибки, если этот метод вызывается без параметра? Если этот аргумент pro c является необязательным, почему он не имеет значения по умолчанию?

def my_function(&prc)
end
p my_function

1 Ответ

0 голосов
/ 14 апреля 2020

В Ruby, каждый метод неявно имеет единственный необязательный параметр блока. Унарный префикс & ampersand sigil означает «взять блок, переданный в качестве аргумента, свернуть его в объект Proc и связать его с этим параметром». Поскольку каждый параметр блока всегда необязательный, и может быть только one , нет необходимости явно отмечать его как необязательный. Мы уже знаем, что это так.

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