Ce face Iterable.every
every returnează true dacă funcția test este adevărată pentru fiecare element. Se oprește la primul element care nu trece. Pe o colecție goală returnează true.
any returnează true dacă există cel puțin un element care trece testul și se oprește la primul găsit. Pe o colecție goală returnează false.
Parametri
| Parametru | Descriere |
|---|---|
test |
Funcția care verifică un element. |
Ce returnează
true sau false.
Exemple
Exemplul 1: Toți promovați? Există vreo notă de 10?
void main() {
final note = [7, 9, 10, 6];
print('toți promovați: ${note.every((n) => n >= 5)}');
print('are un 10: ${note.any((n) => n == 10)}');
print('are un 4: ${note.any((n) => n == 4)}');
final goala = <int>[];
print('listă goală -> every: ${goala.every((n) => n > 100)}, any: ${goala.any((n) => n > 100)}');
}
Rezultat
toți promovați: true
are un 10: true
are un 4: false
listă goală -> every: true, any: false
Exemplul 2: Validarea unui formular
void main() {
final campuri = {'nume': 'Ana Pop', 'oraș': 'Iași', 'telefon': ''};
final complet = campuri.values.every((v) => v.trim().isNotEmpty);
final goale = campuri.entries.where((e) => e.value.isEmpty).map((e) => e.key);
print(complet ? 'Formular complet' : 'Lipsesc: ${goale.join(', ')}');
}
Rezultat
Lipsesc: telefon
Greșeli frecvente
- Te miri că
everype o listă goală dătrue. Așa este definit (nu există niciun element care să nu treacă); verifică separatisEmptydacă lista goală trebuie tratată altfel.
Comenzi înrudite
Iterable.contains: Verifică dacă un element egal (==) cu valoarea dată există în colecție.Iterable.where: Păstrează doar elementele care trec un test; whereType păstrează doar elementele de un anumit tip.Stream.any: any verifică dacă vreo valoare trece testul, every dacă toate îl trec, contains dacă o anumită valoare apare.