확실히 할당되지 않은 late 지역 변수

확실히 할당되지 않은 late 지역 변수

late로 선언한 지역 변수를 값을 넣기 전에 읽으려고 할 때 analyzer가 알려 주는 진단이에요. late의 규칙이 어떻게 동작하는지 보면서 해결해 볼게요.

출처: definitely_unassigned_late_local_variable

본문

변수가 사용되기 전에 값이 확실히 할당되었는지를 판단하는 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가 만들어 내는 다른 진단들.