case 표현식은 상수여야 해요

case 표현식은 상수여야 해요

Dart 분석기가 case 절에 사용된 표현식이 상수 표현식이 아닐 때 이 진단을 내보내요. switch 문의 case 절은 컴파일 타임에 확정되는 상수만 사용할 수 있어요.

출처: non_constant_case_expression

본문

아래 코드는 j가 상수가 아니기 때문에 이 진단이 발생해요.

void f(int i, int j) {
  switch (i) {
    case j:
      // ...
      break;
  }
}

흔한 해결 방법

표현식을 상수 표현식으로 만들거나, switch 문을 if 문의 나열로 다시 작성하면 돼요.

void f(int i, int j) {
  if (i == j) {
    // ...
  }
}

더 알아보기