Latest web development tutorials

cierre Scala

función Scala función Scala

El cierre es una función que devuelve un valor dependiente de la declaración externa en una función o más variables.

Los cierres generalmente considerados como simplemente otra función dentro de una función puede acceder a las variables locales.

Esta función anónima como la siguiente:

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

cuerpo de la función tiene una variable i, como un parámetro de la función. Otra pieza de código como el siguiente:

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

Hay dos variables en el multiplicador: i y factor. Donde i es un parámetro formal de la función, la función se llama cuando el multiplicador, me dieron un nuevo valor. Sin embargo, no es factor de los parámetros formales, pero las variables libres, considere los siguientes códigos:

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

Aquí introducimos un factor variable libre, esta variable se define fuera de la función.

variables de la función de multiplicador de este modo definen como un "cierre", porque se refiere a una variable fuera de la definición de la función, la definición del proceso de esta función es capturar las variables libres constituyen una función cerrada.

ejemplo 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  
}  

Instancia en ejecución »

Aplicación del código anterior, la salida es:

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

función Scala función Scala