Latest web development tutorials

스칼라 폐쇄

스칼라 함수 스칼라 함수

폐쇄 함수 이상의 변수의 선언 외부에 의존하는 값을 반환하는 함수이다.

클로저는 일반적으로 단순히 함수 내에서 다른 함수는 지역 변수를 액세스 할 수있는 것으로 간주된다.

다음과 같이이 익명 함수 :

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

함수 본문 함수 파라미터로서, 변수 I를 갖는다. 다음과 같은 코드의 또 다른 조각 :

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

i 및 요소 : 승수의 두 개의 변수가 있습니다. 내가 함수의 형식 매개 변수 인 경우 승수, 내가 새로운 가치를 부여 할 때, 함수가 호출됩니다. 다만, 요인은 형식 매개 아니지만 자유 변수는 다음과 같은 코드를 고려해

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  

스칼라 함수 스칼라 함수