확실히 할당되지 않은 late 지역 변수
확실히 할당되지 않은 late 지역 변수
late로 선언한 지역 변수를 값을 넣기 전에 읽으려고 할 때 analyzer가 알려 주는 진단이에요. late의 규칙이 어떻게 동작하는지 보면서 해결해 볼게요.
본문
변수가 사용되기 전에 값이 확실히 할당되었는지를 판단하는 definite assignment 분석이, late로 표시된 지역 변수가 할당되기도 전에 읽히고 있음을 보여 주면 analyzer가 이 진단을 만들어 내요.
다음 코드가 이 진단을 만들어 내는 예시예요. x가 읽히기 전에 값을 할당받지 못했거든요.
void f(bool b) {
late int x;
print(x);
}
흔한 해결책
변수를 읽기 전에 값을 할당해 주면 돼요.
void f(bool b) {
late int x;
x = b ? 1 : 0;
print(x);
}
더 알아보기
- Definite assignment — 변수가 사용되기 전에 값이 할당되었는지 판단하는 분석.
- Diagnostics — Dart analyzer가 만들어 내는 다른 진단들.