在迭代器上工作


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; });

最新更新