跳至主要內容

prefer_foreach

穩定

僅在將函式套用至所有元素時使用 forEach

詳細資訊

#

請務必在您僅打算將函式或方法套用至可迭代物件的所有元素時使用 forEach

當您僅打算將函式或方法套用至可迭代物件的所有元素時,使用 forEach 是一種良好的實務,因為它能使您的程式碼更簡潔。

不良範例

dart
for (final key in map.keys.toList()) {
  map.remove(key);
}

良好範例

dart
map.keys.toList().forEach(map.remove);

注意: 將 for each 陳述式替換為 forEach 呼叫可能會在可迭代物件本身有副作用的情況下變更行為。

dart
for (final v in myList) {
  foo().f(v); // This code invokes foo() many times.
}

myList.forEach(foo().f); // But this one invokes foo() just once.

啟用

#

若要啟用 prefer_foreach 規則,請在您的 analysis_options.yaml 檔案中的 linter > rules 下新增 prefer_foreach

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_foreach

如果您改用 YAML map 語法來設定 linter 規則,請在 linter > rules 下新增 prefer_foreach: true

analysis_options.yaml
yaml
linter:
  rules:
    prefer_foreach: true