Ce face Iterable.takeWhile
takeWhile ia elementele de la început și se oprește la primul element care nu trece testul (acesta și tot ce urmează sunt ignorate). skipWhile face invers: sare elementele de la început cât timp trec testul și păstrează tot restul, de la primul care nu trece.
Diferența față de where: where verifică fiecare element, oriunde ar fi; takeWhile și skipWhile se uită doar la începutul colecției.
Parametri
| Parametru | Descriere |
|---|---|
test |
Condiția verificată pe elementele de la început. |
Ce returnează
Un Iterable leneș.
Exemple
Exemplul 1: Temperaturi până la primul îngheț
void main() {
final temperaturi = [8, 5, 3, -1, 4, -3];
print('Înainte de îngheț: ${temperaturi.takeWhile((t) => t > 0)}');
print('De la îngheț: ${temperaturi.skipWhile((t) => t > 0)}');
print('Toate pozitive (where): ${temperaturi.where((t) => t > 0)}');
}
Rezultat
Înainte de îngheț: (8, 5, 3)
De la îngheț: (-1, 4, -3)
Toate pozitive (where): (8, 5, 3, 4)
Exemplul 2: Sărirea rândurilor de comentariu
void main() {
final linii = ['# fișier de date', '# autor: Ana', 'Iași;271692', 'Cluj;286598', '# sfârșit'];
final date = linii.skipWhile((l) => l.startsWith('#'));
for (final l in date) {
print(l);
}
}
Rezultat
Iași;271692
Cluj;286598
# sfârșit
Greșeli frecvente
- Te aștepți ca
skipWhilesă elimine toate elementele care trec testul. Elimină doar seria de la început: în al doilea exemplu, ultimul comentariu rămâne.
Comenzi înrudite
Iterable.take: take păstrează primele n elemente, skip sare peste primele n elemente.Iterable.where: Păstrează doar elementele care trec un test; whereType păstrează doar elementele de un anumit tip.Stream.takeWhile: takeWhile emite valori cât timp testul este adevărat și apoi se închide; skipWhile sare peste ele până la primul fals.
Întrebări & Exemple de Cod:
Iterable.takeWhileAi o nelămurire despre utilizarea comenzii
Iterable.takeWhilesau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.