跳到主要内容

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 规则,请在 linter > rules 下添加 parameter_assignments: true

analysis_options.yaml
yaml
linter:
  rules:
    parameter_assignments: true