avoid_field_initializers_in_const_classes 규칙: const 클래스에서 필드 초기화 피하기
avoid_field_initializers_in_const_classes 규칙: const 클래스에서 필드 초기화 피하기
avoid_field_initializers_in_const_classes는 const 생성자를 가진 클래스에서 필드 초기화(field initializer)를 쓰지 말라고 알려주는 린트(lint) 규칙이에요. final x = const expr; 대신 getter로 바꾸면 불필요한 필드 할당을 아낄 수 있어요.
본문
설명
const 클래스에서 필드 초기화를 쓰지 마세요.
final x = const expr; 대신 get x => const expr;처럼 쓰는 게 좋아요. 그러면 쓸모없는 필드를 할당하지 않아요. 2018년 4월 기준으로 이 방식은 VM에서는 맞지만, JS로 컴파일되는 코드에는 해당하지 않아요.
BAD:
class A {
final a = const [];
const A();
}
GOOD:
class A {
get a => const [];
const A();
}
활성화
avoid_field_initializers_in_const_classes 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules에 avoid_field_initializers_in_const_classes를 추가해요.
linter:
rules:
- avoid_field_initializers_in_const_classes
YAML map 문법으로 린터 규칙을 설정한다면 linter > rules에 avoid_field_initializers_in_const_classes: true를 추가해요.
linter:
rules:
avoid_field_initializers_in_const_classes: true