2017-02-27 6 views
0

Ich lese ein Tutorial zur Demonstration über Hebe-Methode in Scala. Hier ist der Code für die Basisklasse:Scala: Was bedeutet _ in diesem Fall

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)) 
    } 
} 

Hier wird die Hebeverfahren:

def lift[A, B](f: A => B): Optional[A] => Optional[B] = _ map f 

Meine Frage ist: Was unterstreichen ist ("_") stellt in obiger Funktion.

dank

+0

Aufzug bringt eine neue Funktion von Optional [A] zu Optional [B] zurück. Also Optional [A] ist das Eingabeargument dieser neuen Funktion. In diesem Fall stellt das _ das Argument Optional [A] dar, auf dem die Funktion 'map' mit dem Argument 'f' der Funktion 'lift' aufgerufen wird. –

Antwort

1

_ map f gleich (a: Optional[A]) => a.map(f), _ Wildcard in Scala ist. für Ihr Beispiel bedeutet das für Parameter mit Typ Optional[A] und gelten für map f

+0

danke. können Sie mir sagen, welche Regel in scala für uns zu wissen, was _ Zuordnung zu –

+0

Die markierte doppelte Antwort ist besser für Sie. :) – chengpohi

Verwandte Themen