밑줄을 뺀 뒤에도 공개 식별자가 되지 못하는 private 명명 인자

밑줄을 뺀 뒤에도 공개 식별자가 되지 못하는 private 명명 인자

명명 인자(named parameter)의 이름이 밑줄로 시작할 때는, 그 밑줄을 제거했을 때 올바른 공개 식별자(public identifier)가 되어야 해요. 이 진단은 그 조건을 만족하지 못할 때 알려주는 거예요.

출처: private_named_parameter_without_public_name

본문

Dart 분석기(analyzer)는 명명 인자의 이름이 밑줄(underscore)로 시작하는데, 밑줄을 제거한 결과가 유효한 공개 식별자가 아닐 때 이 진단을 내요.

예시

아래 코드는 _2legit이라는 명명 인자를 쓰고 있어요. 여기서 밑줄을 빼면 2legit이 되는데, 숫자로 시작하는 이 이름은 유효한 공개 식별자가 아니에요. 그래서 이 진단이 발생하죠.

class C {
  final int? _2legit;
  C({this._2legit = 0});
  int? get twoLegit => _2legit;
}

일반적인 해결 방법

밑줄 바로 뒤에 오는 문자가 글자(letter)가 되도록 인자 이름을 바꾸면 돼요. 이렇게 하면 밑줄을 제거한 뒤에도 유효한 공개 식별자가 되니까요.

더 알아보기