4.4.3 Dynamic

4.4.3 Dynamic

메서드는 dynamic 키워드로 표시해 (다시)바인딩 가능하게 만들 수 있어요:

class Main {
  static dynamic function test() {
    return "original";
  }

  static public function main() {
    trace(test()); // original
    test = function() {
      return "new";
    }
    trace(test()); // new
  }
}

test()의 첫 호출은 String "original"을 반환하는 원래 함수를 호출해요. 다음 줄에서 test는 새 함수로 할당됩니다. 이것이 정확히 dynamic이 허용하는 것입니다: 함수 필드에 새 함수를 할당할 수 있어요. 그 결과 다음 test() 호출은 String "new"를 반환합니다.

Dynamic 필드는 명백한 이유로 inline일 수 없어요: 인라이닝은 컴파일 타임에 이루어지는 반면, dynamic 함수는 반드시 런타임에 결정되어야 하니까요.

출처: Dynamic

본문

dynamic 메서드

dynamic 키워드는 메서드를 다시 바인딩 가능하게 만들어요. 함수 필드에 새 함수를 할당하면 이후 호출이 새 함수를 사용합니다.

inline 불가

dynamic 함수는 런타임에 결정되므로 컴파일 타임에 이루어지는 인라인일 수 없어요.

더 알아보기