Je suis en train de lire un tutoriel de démonstration sur la méthode de levage dans Scala. Voici le code pour la classe de base:Scala: qu'est-ce que _ représente dans ce cas
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))
}
}
Voici la méthode de levage:
def lift[A, B](f: A => B): Optional[A] => Optional[B] = _ map f
Ma question est: qu'est-ce soulignement ("_") représentent en fonction ci-dessus.
grâce
lift renvoie une nouvelle fonction de Optional [A] à Optional [B]. Donc optionnel [A] est l'argument d'entrée de cette nouvelle fonction. Donc dans ce cas, le _ représente l'argument Optional [A] sur lequel la fonction 'map' est appelée avec l'argument 'f' de la fonction 'lift'. –