我正在学习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;
提取到一个单独的全局变量中。这不是必要的,我也不推荐。