상수에 값 할당
상수에 값 할당 (assignment_to_const)
이 문서는 Dart 분석기(analyzer)가 만들어 내는 assignment_to_const 진단(diagnostic)에 대한 상세한 내용을 설명하는 문서예요. const 수식어가 붙은 최상위 변수, static 필드, 지역 변수에 값을 할당하려고 할 때 분석기가 이 진단을 알려 줘요. 컴파일 타임 상수는 런타임에 값을 바꿀 수 없기 때문이에요. 어떤 상황에서 발생하고 어떻게 고치는지 함께 알아볼게요.
본문
진단 메시지
Constant variables can't be assigned a value after initialization.
상수 변수는 초기화 후에는 값을 할당할 수 없어요.
설명
분석기는 const 수식어가 붙은 최상위 변수, static 필드, 또는 지역 변수에 대한 할당을 발견하면 이 진단을 만들어 내요. 컴파일 타임 상수의 값은 런타임에 변경될 수 없거든요.
예시
다음 코드는 c가 const 수식어를 갖고 있는데도 값을 할당하고 있기 때문에 이 진단을 만들어 내요.
const c = 0;
void f() {
c = 1;
print(c);
}
일반적인 해결 방법
변수에 값을 할당할 수 있어야 한다면 const 수식어를 제거해 주세요.
var c = 0;
void f() {
c = 1;
print(c);
}
상수를 변경하면 안 되는 상황이라면, 할당을 제거하거나 상수를 참조하는 자리에 지역 변수를 사용해 주세요.
const c = 0;
void f() {
var v = 1;
print(v);
}
더 알아보기
- Dart 분석기 진단 목록에서 다른 진단들도 함께 살펴보세요.
- 상수에 대한 더 자세한 내용은 Dart 언어 상수 문서를 참고해요.