Ce face List.add
add pune elementul după ultimul, iar lungimea crește cu 1. addAll adaugă la final, în ordine, toate elementele unui iterable (listă, set, rezultat de map).
Ambele funcționează doar pe liste extensibile. Pe o listă de lungime fixă sau nemodificabilă aruncă UnsupportedError. Cu operatorul cascadă poți adăuga mai multe elemente într-o singură expresie: lista..add(1)..add(2).
Parametri
| Parametru | Descriere |
|---|---|
value |
Elementul adăugat. Trebuie să aibă tipul elementelor listei. |
iterable |
Pentru addAll: colecția ale cărei elemente se adaugă. |
Ce returnează
Nimic (void).
Exemple
Exemplul 1: Construirea unei liste de cumpărături
void main() {
final cos = <String>[];
cos.add('mere');
cos.add('brânză');
cos.addAll(['cafea', 'zahăr']);
print(cos);
final extra = {'apă', 'pâine'};
cos.addAll(extra);
print('${cos.length} produse: ${cos.join(', ')}');
}
Rezultat
[mere, brânză, cafea, zahăr]
6 produse: mere, brânză, cafea, zahăr, apă, pâine
Exemplul 2: Cascadă și adăugare din calcule
void main() {
final note = <int>[]
..add(9)
..add(7)
..addAll([10, 8].where((n) => n >= 9));
print(note);
}
Rezultat
[9, 7, 10]
Greșeli frecvente
- Scrii
lista = lista.add(x):addreturneazăvoid, deci nu ai ce atribui. Lista se modifică pe loc. - Adaugi într-o listă în timp ce o parcurgi cu
for-in: apareConcurrentModificationError.
Comenzi înrudite
List.insert: Inserează un element (insert) sau mai multe (insertAll) la o poziție, mutând restul la dreapta.List.remove: Șterge un element după valoare (remove), după poziție (removeAt) sau ultimul element (removeLast).List.operator+: a + b creează o listă nouă cu elementele lui a urmate de cele ale lui b.Iterable.expand: expand transformă fiecare element în zero sau mai multe elemente și le pune cap la cap; followedBy lipește două iterabile.