跳到主要内容

prefer_final_parameters

稳定
修复可用

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

详情

#

应该 尽可能将函数体中未重新赋值的参数声明为 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 规则与以下规则不兼容

启用

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_final_parameters

如果你使用 YAML map 语法来配置 linter 规则,请在 linter > rules 下添加 prefer_final_parameters: true

analysis_options.yaml
yaml
linter:
  rules:
    prefer_final_parameters: true