Latest web development tutorials

Scala закрытие

функция Scala функция Scala

Закрытие является функцией, которая возвращает значение, зависящее от внешней декларации в функции или более переменных.

Затворы Вообще считается просто еще одна функция внутри функции может получить доступ к локальным переменным.

Эта анонимная функция, как:

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

Тело функции имеет переменную I, в качестве параметра функции. Еще один фрагмент кода вроде следующего:

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

Есть две переменные в умножитель: я и фактор. Где я является формальным параметром функции, функция вызывается, когда множитель, я получил новое значение. Тем не менее, фактор не формальные параметры, но свободные переменные, рассмотрим следующие коды:

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

Здесь мы вводим свободный переменный фактор, эта переменная определена вне функции.

Мультипликатор переменные функции, таким образом, определяется как "закрытие", поскольку оно относится к переменной вне определения функции, определение процесса этой функции является захват свободные переменные образуют замкнутую функцию.

Полный пример

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  
}  

Запуск экземпляра »

Реализация указанного выше кода, выход:

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

функция Scala функция Scala