Scala: что представляет собой _ в этом случае
Я читаю учебник для демонстрации метода подъема в Scala. Вот код для базового класса:
case object None extends Optional[Nothing]
case class Presenter[+A](get: A) extends Optional[A]
trait Optional[+A] {
def map[B](f: A => B): Optional[B] = this match {
case None => None
case Presenter(x) => Presenter(f(x))
}
}
Вот метод лифта:
def lift[A, B](f: A => B): Optional[A] => Optional[B] = _ map f
Мой вопрос: что символ подчеркивания ("_") представляет в вышеупомянутой функции.
Спасибо
1 ответ
_ map f
равно (a: Optional[A]) => a.map(f)
, _
является подстановочным знаком в Scala. для вашего примера это означает для параметра с типом Optional[A]
и применять к map f