@immutable 클래스에는 const 생성자를 선언해요
@immutable 클래스에는 const 생성자를 선언해요
prefer_const_constructors_in_immutables 린트 규칙은, @immutable 클래스에는 const 생성자를 선언하라고 권하는 규칙이에요. Stable 상태이고, 코드 수정도 자동으로 가능해요.
출처: Prefer declaring const constructors on @immutable classes.
본문
@immutable 어노테이션이 붙은 클래스는 값이 바뀌지 않아요. 그런데 값이 안 바뀌는 건데 매번 새 인스턴스를 만들 필요는 없겠죠. 그래서 불변 클래스라면 생성자를 const 생성자로 만들어 주는 게 일반적으로 좋은 습관이에요.
BAD — @immutable인데 생성자가 const가 아니에요.
@immutable
class A {
final a;
A(this.a);
}
GOOD — 생성자에 const를 붙였어요.
@immutable
class A {
final a;
const A(this.a);
}
필드가 전부 final이라 값이 안 바뀌니까, 생성자만 const로 만들어 주면 이 클래스는 어디서든 상수처럼 다룰 수 있게 돼요.
규칙 켜기
analysis_options.yaml 파일의 linter > rules 아래에 prefer_const_constructors_in_immutables를 추가하면 돼요.
linter:
rules:
- prefer_const_constructors_in_immutables
YAML 맵 문법으로 설정한다면 이렇게 써요.
linter:
rules:
prefer_const_constructors_in_immutables: true
더 알아보기
@immutable클래스를 만들었다면, 만들어진 인스턴스를const로 쓰려는prefer_const_constructors규칙도 함께 보면 좋아요.