avoid_setters_without_getters 린트 규칙: 게터 없는 setter를 만들지 맙시다
avoid_setters_without_getters 린트 규칙: 게터 없는 setter를 만들지 맙시다
avoid_setters_without_getters는 짝이 되는 게터(getter) 없이 setter만 정의하지 말아 달라고 알려주는 Dart 린트(lint) 규칙이에요.
본문
설명
setter만 정의하고 짝이 되는 getter는 정의하지 않으면, 논리적으로 모순이 생길 수 있어요. 예를 들어 프로퍼티에 어떤 값을 설정해 놓고 나서 그 프로퍼티의 값을 다시 관찰해 보면, 전혀 다른 값일 수 있거든요. 그래서 setter를 만들 땐 되도록이면 getter도 함께 만들어 주는 게 좋아요.
나쁜 예시
class Bad {
int l, r;
set length(int newLength) {
r = l + newLength;
}
}
length라는 setter만 있고, 그 값을 읽어 올 수 있는 getter가 없어요. 설정한 값과 관찰되는 값이 달라질 수 있는 위험이 있답니다.
좋은 예시
class Good {
int l, r;
int get length => r - l;
set length(int newLength) {
r = l + newLength;
}
}
length에 setter와 getter를 모두 정의해 놓았어요. 이렇게 하면 설정과 읽기가 일관성을 유지해요.
규칙 활성화하기
avoid_setters_without_getters 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 추가해요:
linter:
rules:
- avoid_setters_without_getters
YAML 맵(map) 문법을 쓴다면 linter > rules 아래에 avoid_setters_without_getters: true를 넣으면 돼요:
linter:
rules:
avoid_setters_without_getters: true