有没有一种方法可以将参数传递给可迭代的"firstWhere"方法的"test"



我正在学习Dart,并遵循Codelabs关于可迭代集合的教程。

我刚刚读过关于可迭代的firstWhere方法,该方法用于查找满足某个标准的第一个元素。

本教程给出了一个类似于以下的示例:

bool predicate(String item, {int minLength = 6}) => item.length > minLength;
void main() {
  const items = ['Salad', 'Popcorn', 'Toast', 'Lasagne'];
  var foundItem = items.firstWhere(predicate);
  print(foundItem);
}

它将打印Popcorn,因为它是具有6个或更多字符的第一个字符串。

我想知道在调用items.firstWhere(predicate)时是否可以将minLength参数传递给predicate

当然,但像这样:

final minLength = 6;
final foundItem = items.firstWhere((String item) => item.length > minLength));

您的示例只是将方法(String item) => item.length > minLength;提取到一个单独的全局变量中。这不是必要的,我也不推荐。

相关内容

最新更新