Anonyme Funktionen in Scala
Die Syntax zum Definieren einer anonymen Funktion in Scala ist einfach: Die linke Seite des Pfeils ist die Parameterliste, und die rechte Seite ist der Funktionskörper.
Nach der Verwendung anonymer Funktionen wird unser Code prägnanter.
Der folgende Ausdruck definiert eine anonyme Funktion, die einen Eingabeparameter vom Typ Int akzeptiert:
var inc = (x:Int) => x+1
Die oben definierte anonyme Funktion ist eigentlich eine Kurzschreibweise für die folgende Syntax:
def add2 = new Function1[Int,Int]{
def apply(x:Int):Int = x+1;
}
Das inc aus dem obigen Beispiel kann nun als Funktion verwendet werden, wie folgt:
var x = inc(7)-1
Ebenso können wir mehrere Parameter in einer anonymen Funktion definieren:
var mul = (x: Int, y: Int) => x*y
mul kann nun als Funktion verwendet werden, wie folgt:
println(mul(3, 4))
Wir können auch keine Parameter für eine anonyme Funktion festlegen, wie unten gezeigt:
var userDir = () => { System.getProperty("user.dir") }
userDir kann nun als Funktion verwendet werden, wie folgt:
println( userDir() )
Beispiel
Beispiel
def main(args: Array[String]) {
println( "multiplier(1) value = " + multiplier(1) )
println( "multiplier(2) value = " + multiplier(2) )
}
var factor = 3
val multiplier = (i:Int) => i * factor
}
Speichern Sie den obigen Code in einer Datei Demo.scala und führen Sie die folgenden Befehle aus:
$ scalac Demo.scala $ scala Demo
Die Ausgabe ist:
multiplier(1) value = 3 multiplier(2) value = 6Andere Erweiterungen
Funktionen in Scala