final 지역 변수에 값 할당
final 지역 변수에 값 할당 (assignment_to_final_local)
이 문서는 Dart 분석기(analyzer)가 만들어 내는 assignment_to_final_local 진단(diagnostic)에 대한 상세한 내용을 설명하는 문서예요. final로 선언된 지역 변수가 초기화된 뒤에 다시 값을 할당받을 때 분석기가 이 진단을 알려 줘요. 어떤 상황에서 발생하고 어떻게 고치는지 함께 알아볼게요.
본문
진단 메시지
The final variable '{0}' can only be set once.
final 변수 '{0}'은(는) 한 번만 설정할 수 있어요.
설명
분석기는 final로 선언된 지역 변수가 초기화된 뒤에 다시 할당되는 것을 발견하면 이 진단을 만들어 내요. final 변수는 값이 한 번만 정해질 수 있거든요.
예시
다음 코드는 x가 final이라서 초기화된 뒤에는 값을 할당할 수 없는데도 할당하고 있기 때문에 이 진단을 만들어 내요.
void f() {
final x = 0;
x = 3;
print(x);
}
일반적인 해결 방법
final 키워드를 제거하고, 타입 어노테이션이 없다면 var로 바꿔 주세요.
void f() {
var x = 0;
x = 3;
print(x);
}
더 알아보기
- Dart 분석기 진단 목록에서 다른 진단들도 함께 살펴보세요.
final지역 변수에 대한 더 자세한 내용은 Dart 언어 변수 문서를 참고해요.