parameter_assignments: 함수·메서드의 파라미터에 새 값을 다시 할당하지 마세요
parameter_assignments: 함수·메서드의 파라미터에 새 값을 다시 할당하지 마세요
메서드나 함수의 파라미터에 새 값을 다시 할당하지 않도록 안내하는 린트 규칙이에요. 파라미터를 마음대로 바꾸는 습관은 버그의 온상이 되기 쉬워요.
본문
설명
메서드나 함수의 파라미터에 새 값을 할당하지 마세요 (DON'T). ??= 같은 연산자를 쓰는 경우가 아니라면, 파라미터에 새 값을 할당하는 일은 대개 실수에요. 임의로 파라미터를 다시 할당하는 코드는 버그로 이어지기 십상이죠.
BAD:
void badFunction(int parameter) { // LINT
parameter = 4;
}
BAD:
void badFunction(int required, {int optional: 42}) { // LINT
optional ??= 8;
}
BAD:
void badFunctionPositional(int required, [int optional = 42]) { // LINT
optional ??= 8;
}
BAD:
class A {
void badMethod(int parameter) { // LINT
parameter = 4;
}
}
GOOD:
void ok(String parameter) {
print(parameter);
}
GOOD:
void actuallyGood(int required, {int optional}) { // OK
optional ??= ...;
}
GOOD:
void actuallyGoodPositional(int required, [int optional]) { // OK
optional ??= ...;
}
GOOD:
class A {
void ok(String parameter) {
print(parameter);
}
}
활성화 방법
parameter_assignments 규칙을 쓰려면 analysis_options.yaml 파일의 linter > rules 아래에 규칙을 추가하면 돼요.
linter:
rules:
- parameter_assignments
대신 YAML 맵(map) 문법으로 린터 규칙을 설정한다면, linter > rules 아래에 parameter_assignments: true를 추가해요.
linter:
rules:
parameter_assignments: true