Eine einfache Funktionsliteral alsVerständnis scala-Typen für Funktionen
geschrieben werden kanndef (x: Int) add = x + 2
Im obigen Beispiel füge ich verstehe, ist eine Funktion, die ein Int nimmt und gibt eine Int. Sein Typ ist hinzufügen: (x: Int) Int
Es ist sehr klar.
Aber das folgende Beispiel der vom Typ Option ist [Int] => Int es ist ein wenig unklar
scala> def matchFunction : Option[Int] => Int = {
| case Some(x) => x
| case None => 0
| }
matchFunction: Option[Int] => Int
Im zweiten Beispiel kann jemand erklären, warum nicht der Typ sollte es
def matchFunction (x : Option[Int]) : Int
seine
auch bitte erklären, was der Unterschied zwischen der obigen Funktion ist und die unten die verwendet Spiel aus einer Art Perspektive
def matchFunction (x : Option[Int]) : Int = x match {
case Some(x) => x
case None => 0
}
'add' ist eine Methode nicht funktionieren. also möchten Sie wissen https://StackOverflow.com/Questions/2529184/Difference-between-Method-and-Function-in-Scala – chengpohi
@Genchpohi, warum ist eine Methode hinzufügen, aber MatchFunction eine Funktion. Beide sind def, also warum unterscheidet man sich von den anderen? – Srinivas
'matchFunction' ist eine parameterlose Methode, so dass Sie sie wie eine Variable verwenden können, und sie gibt eine' function' zurück. gleich: 'def matchFunction(): ...' – chengpohi