2.4 익명 구조체(Anonymous Structure)
2.4 익명 구조체(Anonymous Structure)
익명 구조체는 이름 없는 타입으로, 구조적 서브타이핑을 가능하게 하는 핵심이에요. 구조체는 이름 있는 필드의 모음으로, 중괄호 {} 안에 필드들을 기술합니다:
typedef Point = {
x : Int,
y : Int
};
이 Point 타입은 x:Int와 y:Int 두 필드를 가지는 구조를 정의해요. typedef는 타입에 이름을 붙이는 방법이며, 구조체 타입이 아닌 다른 타입에도 사용할 수 있어요.
구조체 리터럴은 필드 이름과 값을 :로 연결해 만들 수 있어요:
var p = { x: 1, y: -5 };
Haxe의 타입 시스템은 구조체를 기반으로 한 구조적 서브타이핑을 지원해서, 구조가 호환되는 타입끼리 할당이 가능해집니다. 구조체 타입을 다루는 구체적인 문법과 규칙은 다음 절들에서 설명합니다:
본문
익명 구조체란
익명 구조체는 이름 없는 구조 타입으로, 이름 있는 필드들의 모음이에요. 클래스처럼 메서드 대신 필드만 가질 수 있고, 값의 묶음을 표현하는 데 유용합니다. typedef로 이름을 붙이면 재사용할 수 있어요.
구조적 서브타이핑의 기반
익명 구조체는 Haxe의 구조적 서브타이핑을 가능하게 하는 토대예요. 두 타입의 구조(필드 집합)가 호환되면, 명시적인 상속 관계 없이도 서로 호환된다고 판단합니다. 이는 유니피케이션 절에서 더 자세히 설명합니다.
구조체 리터럴
{ x: 1, y: -5 }처럼 중괄호 안에 필드명과 값을 써서 구조체 값을 만들 수 있어요. 리터럴의 타입은 쓰인 필드들에 의해 추론됩니다.