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