Ce face Map.forEach
forEach parcurge map-ul și cheamă funcția cu doi parametri: cheia și valoarea. Este forma scurtă pentru for (final e in map.entries).
În interiorul funcției nu poți folosi break sau return pentru a opri parcurgerea; dacă trebuie să te oprești, folosește o buclă for pe entries.
Parametri
| Parametru | Descriere |
|---|---|
action |
Funcția chemată pentru fiecare pereche, cu cheia și valoarea. |
Ce returnează
Nimic (void).
Exemple
Exemplul 1: Afișarea unui meniu
void main() {
final meniu = {'ciorbă de burtă': 18.0, 'sarmale': 32.5, 'papanași': 21.0};
meniu.forEach((fel, pret) {
print('${fel.padRight(16)} ${pret.toStringAsFixed(2)} lei');
});
}
Rezultat
ciorbă de burtă 18.00 lei
sarmale 32.50 lei
papanași 21.00 lei
Exemplul 2: Calcul de totaluri
void main() {
final vanzari = {'luni': 1200, 'marți': 950, 'miercuri': 1430};
var total = 0;
var maxZi = '';
vanzari.forEach((zi, suma) {
total += suma;
if (maxZi.isEmpty || suma > vanzari[maxZi]!) maxZi = zi;
});
print('Total: $total lei, cea mai bună zi: $maxZi');
}
Rezultat
Total: 3580 lei, cea mai bună zi: miercuri
Greșeli frecvente
- Adaugi sau ștergi chei în funcția din
forEach. ApareConcurrentModificationError. - Scrii o funcție cu un singur parametru:
map.forEach((e) => ...). Funcția trebuie să primească două valori, cheia și valoarea.
Comenzi înrudite
Map.keys: keys, values și entries dau cheile, valorile sau perechile unui map, ca Iterable, în ordinea din map.Iterable.forEach: Apelează o funcție pentru fiecare element, în ordine.Map.map: Creează un map nou transformând fiecare pereche într-o pereche nouă, cu alte chei sau alte valori.