switch에 enum 값에 대한 case가 빠진 경우
switch에 enum 값에 대한 case가 빠진 경우 (missing_enum_constant_in_switch)
enum을 대상으로 하는 switch 문에 enum의 값 중 하나에 대한 case가 없을 때 나오는 진단이에요. 빠진 값마다 case를 추가하거나, 같은 방식으로 처리한다면 default 절을 추가하면 돼요.
본문
이 진단은 enum에 대한 switch 문이 enum의 값 중 하나에 대한 옵션을 포함하지 않을 때 분석기가 만들어내요.
주의할 점은 null도 enum의 가능한 값 중 하나라서 반드시 처리해야 한다는 거예요.
예시
아래 코드는 enum 값 e2가 처리되지 않아서 이 진단이 나와요.
enum E { e1, e2 }
void f(E e) {
switch (e) {
case E.e1:
break;
}
}
해결 방법
누락된 값에 특별한 처리가 필요하다면, 각 값을 위한 case 절을 추가해 주세요.
enum E { e1, e2 }
void f(E e) {
switch (e) {
case E.e1:
break;
case E.e2:
break;
}
}
누락된 값들을 같은 방식으로 처리하고 싶다면, default 절을 추가해 주세요.
enum E { e1, e2 }
void f(E e) {
switch (e) {
case E.e1:
break;
default:
break;
}
}
더 알아보기
- Switch 문 (Dart 언어 투어) — switch 문의 다양한 사용법을 다루는 문서예요.