Scala: одиночные абстрактные методы без параметра - PullRequest
0 голосов
/ 21 сентября 2018

С типами SAM у нас может быть:

trait Sam {
  def foo(i: Int): String
}

val sam : Sam = _.toString

Что если мой абстрактный метод не имеет параметра?

1 Ответ

0 голосов
/ 21 сентября 2018

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

trait Sam {
  def foo(): String
}

val sam : Sam = () => "hello"

Вы не можете использовать запись _, потому что нет способа определить функцию с нулевым аргументом с помощью _.

Это не будет работать, если вместо foo определено def foo: String (т. Е. Если у него нет списка параметров), потому что преобразование SAM применяется только в том случае, если единственный метод имеет ровно один список параметров.

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