var fruits = ['apples', 'oranges', 'bananas'];
fruits[0]; // apples
fruits.add('pears');
fruits.length == 4;
fruits.where((f) => f.startsWith('a')).toList();
Run Code Online (Sandbox Code Playgroud)
文档中的示例显示了上述内容.我也不太了解该方法的文档.
https://api.dartlang.org/stable/1.21.1/dart-collection/IterableMixin/where.html
我目前看到一个lambda函数作为参数在哪里,其中有参数f.什么是f?我有点困惑.
如果我能看到一个有效的例子,那就太棒了.现在看来,我真的不明白.我不知道它是如何工作的,或者除了它作为某种过滤器之外还有什么作用.
是一个匿名函数,并且f是它接受的参数
(f) => f.startsWith('a')
Run Code Online (Sandbox Code Playgroud)
where(...)调用为每个元素传递函数的函数,fruits并返回一个仅返回函数返回值的可迭代对象true
where(...)是懒惰的,因此仅当实际访问结果(如)时,才会发生传递函数的迭代和调用.toList()。
更新
“匿名”是指该函数没有名称,与诸如
myFilter(f) => f.startsWith('a');
main() {
fruits.where(myFilter).toList();
}
Run Code Online (Sandbox Code Playgroud)
也
myFilter(f) => f.startsWith('a');
Run Code Online (Sandbox Code Playgroud)
只是
myFilter(f) {
return f.startsWith('a');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
740 次 |
| 最近记录: |