using Gee;
int main (string[] args) {
ArrayList<string> list = new ArrayList<string>();
list.add ("a");
list.add ("b");
list.add ("c");
foreach (var s in list.filter (s => s > "a")) stdout.printf (@"sn");
return 0;
}
这不会编译,因为Traversable<G>.filter
不会返回带有"iterate()"方法的对象,而是返回一个Iterator<G>
.
有没有办法让foreach
在迭代器上工作?
Gee 迭代器/可遍历函数将 foreach 实现为一种方法:
list.filter (s => s > "a").foreach (s => { stdout.printf (@"sn"); return true; });