Latest web development tutorials

zamknięcie Scala

funkcja Scala funkcja Scala

Zamknięcie jest funkcją, która zwraca wartość zależną od zewnętrznego w deklaracji funkcji lub więcej zmiennych.

Zamknięcia Generalnie uważa się być po prostu inna funkcja wewnątrz funkcji można uzyskać dostęp do zmiennych lokalnych.

Ta anonimowa funkcja, jak następuje:

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

Ciało funkcji ma zmienną i, jako parametr funkcji. Kolejny kawałek kodu jak poniżej:

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

Istnieją dwie zmienne w mnożnika: I i czynnikiem. Gdzie ja to parametr formalny funkcji, funkcja jest wywoływana, gdy mnożnik, dano mi nową wartość. Jednakże czynnik ten nie jest formalne parametry, ale zmienne wolne, należy rozważyć następujące kody:

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

Poniżej przedstawiamy bezpłatną współczynnik zmiennej, zmienna ta jest zdefiniowana poza funkcją.

zatem mnożnik zmienne funkcji zdefiniowano jako "zamknięcie", ponieważ to odnosi się do zmiennej w zakres definicji funkcji, określenie procesu tej funkcji jest uchwycić zmiennymi stanowią zamkniętą funkcji.

Kompletny przykład

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  
}  

Uruchomienie instancji »

Realizacja powyższego kodu, wyjście jest:

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

funkcja Scala funkcja Scala