跳到主要內容

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);
  }
}