Scala Teilfunktion Anwendung
Scala Teil Anwendung der Funktion ist ein Ausdruck, Sie bieten nicht alle notwendigen Parameter der Funktion müssen nur teilweise zur Verfügung zu stellen, oder Sie die erforderlichen Parameter nicht zur Verfügung stellen.
Die folgenden Beispiele geben wir Informationen melden:
import java.util.Date object Test { def main(args: Array[String]) { val date = new Date log(date, "message1" ) Thread.sleep(1000) log(date, "message2" ) Thread.sleep(1000) log(date, "message3" ) } def log(date: Date, message: String) = { println(date + "----" + message) } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test Mon Dec 02 12:52:41 CST 2013----message1 Mon Dec 02 12:52:41 CST 2013----message2 Mon Dec 02 12:52:41 CST 2013----message3
Beispiel log () Methode hat zwei Parameter: Datum und Nachricht. Wir riefen dreimal während der Programmausführung sind die Parameterwerte das gleiche Datum, eine andere Nachricht.
Wir können die obige Methode der partiellen Anwendung der Funktionsoptimierung, gebunden ersten Date-Parameter verwenden, den zweiten Parameter einen Unterstrich (_) verwenden, um das fehlende Argument-Liste und den Index der neuen Funktion des Wertes der Variablen zugewiesen zu ersetzen. Beispiele für die oben wird wie folgt geändert:
import java.util.Date object Test { def main(args: Array[String]) { val date = new Date val logWithDateBound = log(date, _ : String) logWithDateBound("message1" ) Thread.sleep(1000) logWithDateBound("message2" ) Thread.sleep(1000) logWithDateBound("message3" ) } def log(date: Date, message: String) = { println(date + "----" + message) } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test Mon Dec 02 12:53:56 CST 2013----message1 Mon Dec 02 12:53:56 CST 2013----message2 Mon Dec 02 12:53:56 CST 2013----message3