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ă
everype 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.