Latest web development tutorials

chiusura Scala

funzione Scala funzione Scala

La chiusura è una funzione che restituisce un valore dipendente dalla dichiarazione esterna in una funzione o più variabili.

Chiusure generalmente considerati semplicemente un'altra funzione all'interno di una funzione in grado di accedere alle variabili locali.

Questa funzione anonima come la seguente:

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

corpo Function ha una variabile i, come parametro di funzione. Un altro pezzo di codice come il seguente:

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

Ci sono due variabili del moltiplicatore: i e fattore. Dove i è un parametro formale della funzione, la funzione viene chiamata quando il moltiplicatore, mi hanno dato un nuovo valore. Tuttavia, il fattore non è i parametri formali, ma le variabili libere, considerare i seguenti codici:

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

Qui introduciamo un fattore variabile libera, questa variabile viene definita al di fuori della funzione.

variabili di funzione moltiplicatore così definiti come "chiusura", perché si riferisce a una variabile esterna alla definizione di funzione, la definizione del processo di questa funzione è catturare le variabili libere costituiscono una funzione chiusa.

esempio completo

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  
}  

esempio »Esecuzione

L'attuazione del codice di cui sopra, l'output è:

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

funzione Scala funzione Scala