跳到主要内容

prefer_final_in_for_each

稳定
可修复

如果在 for-each 循环中引用的变量没有被重新赋值,则优先使用 final 修饰。

详情

#

建议 如果 for-each 循环变量在代码后面没有被重新赋值,则优先将其声明为 final。

在可能的情况下,将 for-each 循环变量声明为 final 是一种很好的实践,因为它有助于避免意外的重新赋值,并允许编译器进行优化。

dart
for (var element in elements) { // LINT
  print('Element: $element');
}

dart
for (final element in elements) {
  print('Element: $element');
}

dart
for (var element in elements) {
  element = element + element;
  print('Element: $element');
}

不兼容规则

#

prefer_final_in_for_each 规则与以下规则不兼容:

启用

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_final_in_for_each

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

analysis_options.yaml
yaml
linter:
  rules:
    prefer_final_in_for_each: true