인스턴스 변수를 가리키지 않는 private 이름 있는 매개변수

인스턴스 변수를 가리키지 않는 private 이름 있는 매개변수 (private_named_non_field_parameter)

이 문서는 Dart 분석기(analyzer)가 만들어 내는 private_named_non_field_parameter 진단(diagnostic)에 대한 상세한 내용을 설명하는 문서예요. 이름 있는 매개변수(named parameter)가 인스턴스 변수를 가리키지 않는데 밑줄(underscore)로 시작할 때 분석기가 이 진단을 알려 줘요. 어떤 상황에서 발생하고 어떻게 고치는지 함께 알아볼게요.

출처: private_named_non_field_parameter

본문

진단 메시지

Named parameters that don't refer to instance variables can't start with underscore.

인스턴스 변수를 가리키지 않는 이름 있는 매개변수는 밑줄로 시작할 수 없어요.

설명

분석기는 이름 있는 매개변수가 밑줄로 시작할 때, 초기화 형식 매개변수(initializing formal)나 필드 매개변수(field parameter)가 아닌 경우에 이 진단을 만들어 내요.

예시

다음 코드는 이름 있는 매개변수 _x가 밑줄로 시작하기 때문에 이 진단을 만들어 내요.

class C {
  C({int _x = 0});
}

일반적인 해결 방법

해당 매개변수가 필드를 가리키려는 의도라면, 빠진 필드를 추가해 주세요.

class C {
  final int _x;
  C({this._x = 0});
  int get x => _x;
}

해당 매개변수가 필드를 가리키려는 의도가 아니라면, 밑줄을 제거해 주세요.

class C {
  C({int x = 0});
}

더 알아보기