3.5.5 공통 기반 타입(Common Base Type)
3.5.5 공통 기반 타입(Common Base Type)
여러 타입의 집합이 주어졌을 때, 공통 기반 타입(common base type) 은 그 집합의 모든 타입이 유니파이되는 타입이에요:
class Base {
public function new() {}
}
class Child1 extends Base {}
class Child2 extends Base {}
class Main {
static public function main() {
var a = [new Child1(), new Child2()];
$type(a); // Array<Base>
}
}
Base가 언급되지 않았는데도 Haxe 컴파일러는 Child1과 Child2의 공통 타입으로 Base를 추론해냅니다. Haxe 컴파일러는 다음 상황에서 이런 유니피케이션을 사용해요:
- 배열 선언(Array declarations)
if/elseswitch의 case들
출처: Common Base Type
본문
공통 기반 타입의 개념
공통 기반 타입은 집합 내 모든 타입이 유니파이되는 하나의 타입이에요. [new Child1(), new Child2()]처럼 서로 다른 하위 타입의 배열을 만들면, 컴파일러는 공통 상위 타입인 Base를 추론해 Array<Base>를 만들어요.
사용 상황
공통 기반 타입 유니피케이션은 배열 선언, if/else의 브랜치, switch의 case들처럼 여러 타입이 결합되는 상황에서 사용됩니다.