avoid_init_to_null 규칙: 변수를 null로 명시적으로 초기화하지 않기
avoid_init_to_null 규칙: 변수를 null로 명시적으로 초기화하지 않기
avoid_init_to_null는 변수를 null로 명시적으로 초기화하지 말라고 알려주는 린트(lint) 규칙이에요. Dart에서는 nullable 변수를 명시적으로 null로 초기화할 필요가 없고, = null을 붙이는 건 중복에 불과해요.
본문
설명
Effective Dart에서 가져온 규칙이에요.
DON'T: 변수를 null로 명시적으로 초기화하지 마세요.
변수의 타입이 nullable이 아니거나 final이라면, 확실히 초기화되기 전에 사용하려고 하면 Dart가 컴파일 오류를 알려줘요. 변수가 nullable이고 const나 final이 아니라면, 그 변수는 자동으로 암묵적으로 null로 초기화돼요. Dart에는 "초기화되지 않은 메모리"라는 개념이 없어서, "안전하려고" 변수를 null로 명시적으로 초기화할 필요가 없어요. = null을 붙이는 건 중복이고 불필요해요.
BAD:
Item? bestDeal(List<Item> cart) {
Item? bestItem = null;
for (final item in cart) {
if (bestItem == null || item.price < bestItem.price) {
bestItem = item;
}
}
return bestItem;
}
GOOD:
Item? bestDeal(List<Item> cart) {
Item? bestItem;
for (final item in cart) {
if (bestItem == null || item.price < bestItem.price) {
bestItem = item;
}
}
return bestItem;
}
활성화
avoid_init_to_null 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules에 avoid_init_to_null를 추가해요.
linter:
rules:
- avoid_init_to_null
YAML map 문법으로 린터 규칙을 설정한다면 linter > rules에 avoid_init_to_null: true를 추가해요.
linter:
rules:
avoid_init_to_null: true