Работи ли foreach на Iterator?

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 (@"s\n");

        return 0;
}

Това не се компилира, защото Traversable<G>.filter не връща обект с метод "iterate()", а Iterator<G>.

Има ли някакъв начин foreach да работи върху итератор?


person Jens Mühlenhoff    schedule 09.09.2013    source източник


Отговори (1)


Итераторите/Traversables на Gee имплементират foreach като метод:

list.filter (s => s > "a").foreach (s => { stdout.printf (@"s\n"); return true; });
person apmasell    schedule 09.09.2013