Latest web development tutorials

fechamento Scala

função Scala função Scala

O encerramento é uma função que retorna um valor dependente da declaração externa em uma função ou mais variáveis.

Closures considerado geralmente para ser simplesmente uma outra função dentro de uma função pode acessar as variáveis ​​locais.

Esta função anônima como o seguinte:

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

corpo da função tem um i variável, como um parâmetro de função. Outro pedaço de código como o seguinte:

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

Existem duas variáveis ​​na multiplicador: i e fator. Onde i é um parâmetro formal da função, a função é chamada quando o multiplicador, me foi dado um novo valor. No entanto, o fator não é os parâmetros formais, mas as variáveis ​​livres, considere os seguintes códigos:

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

Aqui nós introduzimos um fator variável livre, esta variável é definida fora da função.

variáveis ​​da função multiplicadores assim definido como um "fecho", porque se refere a uma variável fora da definição de função, a definição do processo desta função é a de capturar as variáveis ​​livres constituem uma função fechada.

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

Correndo instância »

Implementação do código acima, a saída é:

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

função Scala função Scala