`final_not_initialized`: final 변수는 반드시 초기화해야 해요

final_not_initialized: final 변수는 반드시 초기화해야 해요

Dart 분석기가 내는 final_not_initialized 진단에 대해 알아볼게요. final 필드나 변수가 초기화되어 있지 않으면 이 진단이 나와요.

출처: final_not_initialized

본문

final 필드나 변수가 초기화되어 있지 않으면 분석기가 이 진단을 만들어요. final은 값을 한 번만 정할 수 있고, 그 값을 쓰기 전에 반드시 정해져 있어야 하니까요.

예시

다음 코드는 x에 초기화 구문이 없기 때문에 이 진단을 만들어요.

final int x;

자주 쓰는 해결 방법

변수나 정적(static) 필드라면 초기화 구문을 추가하면 돼요.

final int x = 0;

인스턴스 필드라면, 앞의 예시처럼 초기화 구문을 추가하거나, 모든 생성자에서 필드를 초기화하면 돼요. 초기화 형식 매개변수(initializing formal parameter)를 사용해서 필드를 초기화할 수 있어요.

class C {
  final int x;

  C(this.x);
}

생성자의 초기화 목록(initializer)을 사용해서 필드를 초기화할 수도 있어요.

class C {
  final int x;

  C(int y) : x = y * 2;
}

더 알아보기