지역 변수는 재할당하지 않으면 final로 선언해요
지역 변수는 재할당하지 않으면 final로 선언해요
prefer_final_locals 린트 규칙은 나중에 재할당하지 않는 변수 선언은 final로 하라고 권하는 규칙이에요. Stable 상태이고 자동 수정도 가능해요.
출처: Prefer final for variable declarations if they are not reassigned.
본문
코드에서 나중에 재할당하지 않는 변수는 final로 선언하세요.
변수를 가능하면 final로 선언하는 게 좋은 습관인 이유는, 실수로 값을 다시 바꾸는 일을 막아 주고 컴파일러가 최적화를 할 수 있게 해 주기 때문이에요.
BAD — 재할당하지 않는데 var로 선언했어요.
void badMethod() {
var label = 'hello world!'; // LINT
print(label);
}
GOOD — final로 선언했어요.
void goodMethod() {
final label = 'hello world!';
print(label);
}
GOOD — 실제로 값을 바꾼다면 var로 남겨도 괜찮아요.
void mutableCase() {
var label = 'hello world!';
print(label);
label = 'hello world';
print(label);
}
함께 쓰면 안 되는 규칙
prefer_final_locals 린트는 다음 규칙과 충돌해요.
unnecessary_final
규칙 켜기
analysis_options.yaml 파일의 linter > rules 아래에 prefer_final_locals를 추가하면 돼요.
linter:
rules:
- prefer_final_locals
YAML 맵 문법으로 설정한다면 이렇게 써요.
linter:
rules:
prefer_final_locals: true
더 알아보기
- 함수 안에서 값을 다시 할당하는 변수라면
var로 두는 게 자연스러워요.