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)이 사용돼요. 기본값은 매개변수를 오른쪽에서 왼쪽 순으로 채우는 방식으로 적용됩니다.