メインコンテンツにスキップ

parameter_assignments

安定版

関数やメソッドのパラメータへの参照を再代入しないでください。

詳細

#

しないでください メソッドや関数のパラメータに新しい値を代入すること。

パラメータに新しい値を代入することは、??= のような演算子が使用されない限り、一般的に悪い習慣です。それ以外の場合、任意にパラメータを再代入することは通常間違いです。

悪い例

dart
void badFunction(int parameter) { // LINT
  parameter = 4;
}

悪い例

dart
void badFunction(int required, {int optional: 42}) { // LINT
  optional ??= 8;
}

悪い例

dart
void badFunctionPositional(int required, [int optional = 42]) { // LINT
  optional ??= 8;
}

悪い例

dart
class A {
  void badMethod(int parameter) { // LINT
    parameter = 4;
  }
}

良い例

dart
void ok(String parameter) {
  print(parameter);
}

良い例

dart
void actuallyGood(int required, {int optional}) { // OK
  optional ??= ...;
}

良い例

dart
void actuallyGoodPositional(int required, [int optional]) { // OK
  optional ??= ...;
}

良い例

dart
class A {
  void ok(String parameter) {
    print(parameter);
  }
}

有効にする

#

parameter_assignments ルールを有効にするには、analysis_options.yaml ファイルの linter > rules の下に parameter_assignments を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    - parameter_assignments

代わりに、YAMLマップ構文を使用してリンタルールを設定している場合は、linter > rules の下に parameter_assignments: true を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    parameter_assignments: true