Ce face Iterator.moveNext
moveNext() mută iteratorul pe elementul următor și returnează true dacă există unul, sau false la final. Trebuie chemat o dată înainte de primul element.
current returnează elementul curent. Este valid doar după un moveNext() care a returnat true. Folosind direct cele două, poți parcurge două colecții în paralel sau poți trata separat primul element.
Ce returnează
moveNext returnează bool; current returnează elementul curent.
Exemple
Exemplul 1: Două colecții în paralel
void main() {
final nume = ['Ana', 'Mihai', 'Ioana'];
final note = {10, 8, 9};
final a = nume.iterator;
final b = note.iterator;
while (a.moveNext() && b.moveNext()) {
print('${a.current}: ${b.current}');
}
}
Rezultat
Ana: 10
Mihai: 8
Ioana: 9
Exemplul 2: Primul element tratat separat
void main() {
final cuvinte = ['dart', 'este', 'un', 'limbaj'];
final it = cuvinte.iterator;
if (!it.moveNext()) return;
final buffer = StringBuffer(it.current.toUpperCase());
while (it.moveNext()) {
buffer.write(' ${it.current}');
}
print(buffer);
}
Rezultat
DART este un limbaj
Greșeli frecvente
- Chemi
moveNext()de două ori în aceeași iterație a buclei și sari peste elemente.