#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, ???)
.
Вы не можете.