Не указывайте параметры в определении функции Scala

#scala

#scala

Вопрос:

Я могу написать ??? в теле функции, чтобы оставить ее невыполненной (где эта функция документирована)?

Интересно, как я могу оставить параметры неуказанными, т.Е. def f(param1, ???) .

Комментарии:

1. в чем смысл? Вы можете присвоить ему имя, тип и значение по умолчанию. Таким образом, вы не обязаны использовать его в функции

2. Такая гипотеза def f(param1, ???) , похоже, не отличается от def f(param1) . ??? полезно, потому что вы можете писать ??? вместо тела метода. Но если def f(param1, ???) бы это было возможно, почему это было бы полезно? Если вы не назовете параметр, вы не сможете использовать его дальше.

Ответ №1:

??? это функция с типом возвращаемого Nothing значения, определенным в Predef . NotImplementedError При вызове он выдает значение.

Я не думаю, что существует аналогичный способ исключить параметр из определения функции. Что вы можете попробовать, так это сначала присвоить ему тип Any , а затем ужесточить тип при реализации функции.

Ответ №2:

Я могу написать ??? в теле функции, чтобы оставить ее невыполненной (где эта функция документирована)?

Эта функция называется приложением функции или в просторечии известна как «вызов метода». Вы вызываете метод с именем ??? , который определяется следующим образом:

 def ??? : Nothing = throw new NotImplementedError
  

Интересно, как я могу оставить параметры неуказанными, т.Е. def f(param1, ???) .

Вы не можете.