no_literal_bool_comparisons 린트: 부울 표현식을 불 리터럴과 비교하지 말기
no_literal_bool_comparisons 린트: 부울 표현식을 불 리터럴과 비교하지 말기
부울 표현식(boolean expression)을 true나 false 리터럴과 직접 비교하는 코드를 잡아주는 린트(lint) 규칙이에요. 이런 비교는 보통 불필요하고 오히려 읽기 어렵게 만들기 때문에, 더 깔끔하게 다듬어 주는 규칙이랍니다.
본문
설명
같음 연산에서 true나 false를 사용하지 마세요(Effective Dart의 권장 사항이에요).
이 린트는 표현식이 null이 아닌 bool 타입일 때만 적용돼요. 즉 bool? 같은 nullable 타입에는 걸리지 않는다는 뜻이에요.
BAD:
if (someBool == true) {
print('true!');
}
while (someBool == false) {
print('still false!');
}
GOOD:
if (someBool) {
print('true!');
}
while (!someBool) {
print('still false!');
}
이렇게 == true는 그냥 표현식만 쓰고, == false는 ! 연산자로 바꾸면 훨씬 간결하고 읽기 좋아져요.
활성화 방법
no_literal_bool_comparisons 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 no_literal_bool_comparisons를 추가해요.
analysis_options.yaml:
linter:
rules:
- no_literal_bool_comparisons
대신 YAML 맵 문법으로 린트 규칙을 설정한다면, linter > rules 아래에 no_literal_bool_comparisons: true라고 적어요.
analysis_options.yaml:
linter:
rules:
no_literal_bool_comparisons: true