3.2.2 기본값(Defaults)

3.2.2 기본값(Defaults)

Haxe 4.3부터 타입의 각 타입 매개변수에 기본 타입을 지정할 수 있어요. 타입 주석에서 그런 타입을 사용할 때 기본값이 있는 타입 매개변수는 생략할 수 있습니다:

class Example<T = Int, U = Int> {
  public var a:T;
  public var b:U;
  public function new() {}
}

function main():Void {
  var x:Example = new Example();
  $type(x.a); // Int
  $type(x.b); // Int

  var y:Example<Bool> = new Example();
  $type(y.a); // Bool
  $type(y.b); // Int

  var z:Example<String, Int> = new Example();
  $type(z.a); // String
  $type(z.b); // Int
}

Example<T = Int, U = Int>은 두 타입 매개변수에 기본값 Int를 지정해요. Example(매개변수 생략)은 Example<Int, Int>로 해석되고, Example<Bool>Example<Bool, Int>로 해석됩니다. 즉 기본값은 뒤쪽 매개변수에 적용되고, 앞쪽 매개변수를 명시하면 그 타입이 사용돼요.

출처: Defaults

본문

타입 매개변수 기본값

Haxe 4.3부터 타입 매개변수에 기본 타입을 지정할 수 있어요. T = Int처럼 =로 기본값을 붙입니다. 기본값이 있는 매개변수는 타입 주석에서 생략할 수 있어요.

생략 규칙

Example처럼 매개변수를 전부 생략하면 모든 기본값이 적용됩니다. Example<Bool>처럼 앞쪽만 명시하면 뒤쪽은 기본값(Int)이 사용돼요. 기본값은 매개변수를 오른쪽에서 왼쪽 순으로 채우는 방식으로 적용됩니다.

더 알아보기