3.8.1 클로저

    록스에서 함수는 일급(first-class)이므로 참조할 수 있고, 변수로 저장할 수 있고, 다른 함수에 전달할 수 있는 진짜 값이다. 다음 코드를 보자.

    fun addPair(a, b) {
      return a + b;
    }
    
    fun identity(a) {
      return a;
    }
    
    print identity(addPair)(1, 2); // 3 출력
    

    함수 선언은 문장이라서 다른 함수 내부에 로컬 함수로 선언할 수도 있다.

    fun outerFunction() {
      fun localFunction() {
        print "I'm local!";
      }
    
      localFunction();
    }
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.