13.2 위치 정보 인자(Position Information Parameter)

13.2 위치 정보 인자(Position Information Parameter)

haxe.PosInfos는 디버깅 목적으로 출력에 위치 정보를 생성하는 데 사용할 수 있는 매직 타입입니다. 함수가 이 타입의 마지막 선택적 인자, 즉 (..., ?pos:haxe.PosInfos)를 가진다면, 그 함수를 호출할 때 그 인자에 값을 할당하지 않는 각 호출은 호출 인자로 자신의 위치를 추가합니다.

어떤 경우에는 커스텀 메서드를 정의해서 추적을 수행하는 것이 유용할 때가 있습니다. haxe.PosInfos 선택적 인자가 설정되지 않으면 그 기본값이 항상 컴파일러에 의해 대체되므로 Haxe에서 다음 사용법이 가능합니다:

class Main {
  static function assert(cond:Bool, ?pos:haxe.PosInfos) {
    if (!cond)
      haxe.Log.trace("Assert in " + pos.className + "::" + pos.methodName, pos);
  }

  static function main() {
    assert(1 == 1); // 아무것도 안 함
    assert(0 == 3); // trace "Assert in Test::main"
  }
}

출처: Position Information Parameter

더 알아보기