目录

prefer_foreach

仅对所有元素应用函数时,请使用 forEach

此规则从 Dart 2.0 开始可用。

详情

#

应该使用 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