跳到主要内容

avoid_function_literals_in_foreach_calls

函数字面量不应传递给 'forEach'。

描述

#

Iterable.forEach 的参数是一个闭包时,分析器会生成此诊断。

示例

#

以下代码会生成此诊断,因为对 forEach 的调用参数是一个闭包

dart
void f(Iterable<String> s) {
  s.forEach((e) => print(e));
}

常见修复方法

#

如果闭包可以替换为 tear-off,则替换该闭包

dart
void f(Iterable<String> s) {
  s.forEach(print);
}

如果闭包无法替换为 tear-off,则使用 for 循环来迭代元素

dart
void f(Iterable<String> s) {
  for (var e in s) {
    print(e);
  }
}