内容

prefer_final_parameters

如果参数在函数体中没有重新赋值,则首选使用 final 声明参数。

此规则从 Dart 2.14 开始可用。

此规则有一个 快速修复 可用。

不兼容规则: unnecessary_final, avoid_final_parameters

详情

#

**应该** 首选将参数声明为 final,如果它们在函数体中没有重新赋值。

尽可能地将参数声明为 final 是一种良好的实践,因为它有助于避免意外重新赋值。

错误

dart
void badParameter(String label) { // LINT
  print(label);
}

正确

dart
void goodParameter(final String label) { // OK
  print(label);
}

错误

dart
void badExpression(int value) => print(value); // LINT

正确

dart
void goodExpression(final int value) => print(value); // OK

错误

dart
[1, 4, 6, 8].forEach((value) => print(value + 2)); // LINT

正确

dart
[1, 4, 6, 8].forEach((final value) => print(value + 2)); // OK

正确

dart
void mutableParameter(String label) { // OK
  print(label);
  label = 'Hello Linter!';
  print(label);
}

用法

#

要启用 prefer_final_parameters 规则,请在你的 analysis_options.yaml 文件中将 prefer_final_parameters 添加到 **linter > rules** 下

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_final_parameters