prefer_const_constructors 진단: const 생성자로 성능을 챙길 때
prefer_const_constructors 진단: const 생성자로 성능을 챙길 때
Dart 분석기가 내보내는 진단에는 이름이 있어요. prefer_const_constructors는 const 생성자를 호출하면서 앞에 const를 붙이지 않았거나 상수 문맥 안에 두지 않았을 때 알려주는 린트(lint) 진단이에요. const로 만들면 컴파일 타임 상수로 정해져서 매번 새 객체를 만들지 않아 성능상 이득이 있어요.
본문
설명
분석기는 const 생성자의 호출이 const로 시작하지도 않고 상수 문맥(constant context) 안에 있지도 않을 때 이 진단을 만들어요. 상수 문맥은 const 키워드가 암시적으로 적용되는 코드 영역이라, 그 영역 안의 모든 값은 상수여야 해요.
예시
다음 코드는 const 생성자 호출이 const로 시작하지도 않고 상수 문맥 안에 있지도 않아서 이 진단을 만들어요.
class C {
const C();
}
C c = C();
흔한 해결 방법
문맥을 상수 문맥으로 만들 수 있다면 그렇게 해요.
class C {
const C();
}
const C c = C();
문맥을 상수 문맥으로 만들 수 없다면, 생성자 호출 앞에 const를 붙이면 돼요.
class C {
const C();
}
C c = const C();