跳到主要內容

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