跳至主內容

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 對映語法配置 Linter 規則,請在 linter > rules 下新增 prefer_foreach: true

analysis_options.yaml
yaml
linter:
  rules:
    prefer_foreach: true