2.4.2 구조 타입의 클래스 표기
2.4.2 구조 타입의 클래스 표기
구조 타입을 정의할 때 Haxe는 클래스 필드(Class Fields)에서 설명하는 것과 동일한 문법을 사용할 수 있어요. 다음 typedef는 Int 타입의 변수 필드 x와 y를 가진 Point 타입을 선언합니다:
typedef Point = {
var x : Int;
var y : Int;
}
Haxe 4.0.0 이후 — 구조체의 필드는
final로도 선언할 수 있어요.final필드는 한 번만 할당할 수 있습니다. 이런 구조체는 대응하는 필드도final일 때만 다른 타입과 유니파이됩니다.
본문
클래스 표기 문법
구조 타입을 정의할 때 var field : Type; 형식의 클래스 필드 문법을 쓸 수 있어요. 이는 익명 구조체 표기(field : Type)보다 클래스 정의와 더 닮아 있어 자연스럽게 읽힙니다.
final 필드
Haxe 4.0.0부터 구조체 필드를 final로 표시할 수 있어요. final 필드는 한 번만 값을 할당받을 수 있으며, 이후 변경이 불가능합니다. 이런 불변 필드를 가진 구조체는 대응 필드 역시 final인 타입과만 유니파이됩니다.