6.4.4 구조체 매칭(Structure matching)
6.4.4 구조체 매칭(Structure matching)
익명 구조체와 인스턴스의 필드에 대해 매칭하는 것도 가능해요:
var myStructure = {
name: "haxe",
rating: "awesome"
};
var value = switch (myStructure) {
case {name: "haxe", rating: "poor"}:
throw false;
case {rating: "awesome", name: n}:
n;
case _:
"no awesome language found";
}
trace(value); // haxe
두 번째 case에서 rating이 "awesome"과 일치하면 일치된 name 필드를 식별자 n에 바인딩합니다. 물론 이 구조체를 이전 예제의 Tree에 넣어 구조체와 enum 매칭을 결합할 수도 있어요.
본문
익명 구조체/인스턴스의 필드를 {name: "haxe", rating: poor}처럼 패턴으로 매칭할 수 있어요. 필드 값을 식별자에 바인딩하고(name: n), 구조체와 enum 매칭을 결합할 수도 있습니다.