parameter_assignments: 함수·메서드의 파라미터에 새 값을 다시 할당하지 마세요

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

더 알아보기