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 매칭을 결합할 수도 있어요.

출처: Structure matching

본문

익명 구조체/인스턴스의 필드를 {name: "haxe", rating: poor}처럼 패턴으로 매칭할 수 있어요. 필드 값을 식별자에 바인딩하고(name: n), 구조체와 enum 매칭을 결합할 수도 있습니다.

더 알아보기