var fruits = ['apples', 'oranges', 'bananas'];
fruits[0]; // apples
fruits.add('pears');
fruits.length == 4;
fruits.where((f) => f.startsWith('a')).toList();
文档中的示例显示了上述内容。 我也不太了解该方法的文档。
https://api.dartlang.org/stable/1.21.1/dart-collection/IterableMixin/where.html
我目前看到lambda函数作为参数在哪里,其中有参数f。什么是f?我有点困惑。
如果我能看到一个有效的例子,那就太好了。现在看来,我真的不明白。我不知道它是如何工作的,或者除了它作为某种过滤器之外还有什么作用。
答案 0 :(得分:4)
是匿名函数,f
是它接受的参数
(f) => f.startsWith('a')
where(...)
调用为fruits
中的每个元素传递函数,并返回一个只发出函数返回的值的true
where(...)
是懒惰的,因此传递函数的迭代和调用只会在实际访问结果时发生,例如.toList()
。
<强>更新强>
&#34;匿名&#34;表示该函数没有与
之类的命名函数相反的名称myFilter(f) => f.startsWith('a');
main() {
fruits.where(myFilter).toList();
}
也
myFilter(f) => f.startsWith('a');
只是
的缩写形式myFilter(f) {
return f.startsWith('a');
}