5.17 switch

5.17 switch

기본 switch 표현식은 switch 키워드와 switch 주체 표현식, 중괄호 {} 안의 case 표현식들로 시작합니다. case 표현식은 case 키워드 뒤에 패턴 표현식이 오거나, default 키워드로 구성됩니다. 두 경우 모두 콜론 :과 선택적 case 본문 표현식이 옵니다:

switch subject {
  case pattern1: case-body-expression-1;
  case pattern2: case-body-expression-2;
  default: default-expression;
}

Case 본문 표현식은 절대 "fall through"하지 않으므로 Haxe에서는 break 키워드가 지원되지 않아요.

Switch 표현식은 값으로 사용될 수 있습니다; 그 경우 모든 case 본문 표현식과 default 표현식의 타입은 유니파이(unify)되어야 해요.

각 case(default 포함)는 변수 스코프이기도 하며, 이는 변수 섀도잉(variable shadowing)에 영향을 줍니다.

switch (0) {
  case 0:
    var a = "foo";
  case _:
    // This would cause a compilation error, since `a` from the previous
    // case is not accessible in this case:
    // trace(a);
}

관련 콘텐츠(Related content) — 패턴 매칭 구문의 추가 세부 사항은 패턴 매칭(Pattern Matching)에서 다룹니다.

출처: switch

본문

switch 기본

switch subject { case 패턴: 본문; ... default: 본문; } 형태입니다. case는 fall through하지 않아 break가 필요/지원되지 않습니다.

값으로서의 switch

switch는 값으로 사용될 수 있고, 그 경우 모든 case 본문 타입이 유니파이되어야 해요.

case와 스코프

각 case는 독립된 변수 스코프라서 이전 case의 지역 변수에 접근할 수 없어요(섀도잉 영향).

더 알아보기