Iterable.takeWhile în Dart

takeWhile păstrează elementele de la început cât timp trec testul; skipWhile le sare cât timp trec testul.

Sintaxă
Iterable<E> takeWhile(bool test(E value))
Iterable<E> skipWhile(bool test(E value))

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 skipWhile să 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.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Iterable.takeWhile

Ai o nelămurire despre utilizarea comenzii Iterable.takeWhile sau 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.