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의 지역 변수에 접근할 수 없어요(섀도잉 영향).