Latest web development tutorials

Scala Schließung

Scala-Funktion Scala - Funktion

Schließung ist eine Funktion, die einen Wert abhängig von der externen Deklaration in einer Funktion oder mehr Variablen zurückgibt.

Closures Allgemein als einfach eine andere Funktion innerhalb einer Funktion sein, können die lokalen Variablen zugreifen.

Diese anonyme Funktion wie die folgenden:

val multiplier = (i:Int) => i * 10  

Funktionskörper besitzt eine variable i, als Funktionsparameter. Ein weiteres Stück Code wie folgt aus:

val multiplier = (i:Int) => i * factor

Es gibt zwei Variablen in der Dimension: i und Faktor. Wo ich einen formalen Parameter der Funktion ist, wird die Funktion aufgerufen wird, wenn der Multiplikator, ich einen neuen Wert gegeben wurde. Allerdings Faktor ist nicht die formalen Parameter, aber die freien Variablen, die folgenden Codes:

var factor = 3  
val multiplier = (i:Int) => i * factor  

Hier stellen wir eine freie Variable Faktor, diese Variable definiert außerhalb der Funktion.

Multiplier-Funktion Variablen somit als "Verschluss" definiert, weil sie außerhalb der Funktionsdefinition auf eine Variable verweist, die Definition des Verfahrens dieser Funktion zu erfassen ist die freien Variablen eine geschlossene Funktion darstellen.

Komplettes Beispiel

object Test {  
   def main(args: Array[String]) {  
      println( "muliplier(1) value = " +  multiplier(1) )  
      println( "muliplier(2) value = " +  multiplier(2) )  
   }  
   var factor = 3  
   val multiplier = (i:Int) => i * factor  
}  

Ausführung einer Instanz »

Die Umsetzung des obigen Codes ist die Ausgabe:

$ scalac Test.scala  
$  scala Test  
muliplier(1) value = 3  
muliplier(2) value = 6  

Scala-Funktion Scala - Funktion