Stream.any în Dart

any verifică dacă vreo valoare trece testul, every dacă toate îl trec, contains dacă o anumită valoare apare.

Sintaxă
Future<bool> any(bool test(T element))
Future<bool> every(bool test(T element))
Future<bool> contains(Object? needle)

Ce face Stream.any

any se termină cu true imediat ce o valoare trece testul (și anulează ascultarea), sau cu false la închidere. every se termină cu false la prima valoare care nu trece testul, sau cu true la închidere.

contains(x) este any((e) => e == x): caută o valoare anume.

Parametri

Parametru Descriere
test Condiția verificată pentru fiecare valoare.
needle Pentru contains: valoarea căutată.

Ce returnează

Un Future<bool>.

Exemple

Exemplul 1: Note: există vreun 10? Au promovat toți?

Stream<int> note() => Stream.fromIterable([8, 10, 4, 9]);

Future<void> main() async {
  print('Există un 10: ${await note().any((n) => n == 10)}');
  print('Toți au promovat: ${await note().every((n) => n >= 5)}');
  print('Cineva a luat 4: ${await note().contains(4)}');
}

Rezultat

Există un 10: true
Toți au promovat: false
Cineva a luat 4: true

Exemplul 2: any se oprește la prima potrivire

Stream<String> fisiere() async* {
  for (final f in ['poza.jpg', 'virus.exe', 'notite.txt']) {
    print('  scanez $f');
    yield f;
  }
}

Future<void> main() async {
  final periculos = await fisiere().any((f) => f.endsWith('.exe'));
  print('Fișier periculos găsit: $periculos');
}

Rezultat

  scanez poza.jpg
  scanez virus.exe
Fișier periculos găsit: true

Greșeli frecvente

  • Crezi că every pe un stream gol dă false. Dă true, pentru că nicio valoare nu a picat testul.

Comenzi înrudite

  • Stream.firstWhere: Dă un Future cu prima valoare din stream care trece testul; cu orElse, o valoare de rezervă dacă nu există.
  • Iterable.every: every verifică dacă toate elementele trec testul; any verifică dacă măcar unul îl trece.
  • Iterable.contains: Verifică dacă un element egal (==) cu valoarea dată există în colecție.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Stream.any

Ai o nelămurire despre utilizarea comenzii Stream.any 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.