Ce face List.operator+
Operatorul + pe liste returnează o listă nouă, extensibilă, cu toate elementele primei liste urmate de toate elementele celei de-a doua. Listele inițiale nu se schimbă.
Echivalentul cu spread este [...a, ...b], care permite și mai multe liste sau elemente separate. Pentru a adăuga într-o listă existentă, fără copie, folosește addAll.
Parametri
| Parametru | Descriere |
|---|---|
other |
Lista adăugată la final. |
Ce returnează
O List<E> nouă.
Exemple
Exemplul 1: Lipirea a două liste
void main() {
final dimineata = ['Ana', 'Mihai'];
final dupaAmiaza = ['Ioana', 'Vlad'];
final toti = dimineata + dupaAmiaza;
print(toti);
print('neschimbate: $dimineata, $dupaAmiaza');
print([...dimineata, 'Elena', ...dupaAmiaza]);
}
Rezultat
[Ana, Mihai, Ioana, Vlad]
neschimbate: [Ana, Mihai], [Ioana, Vlad]
[Ana, Mihai, Elena, Ioana, Vlad]
Exemplul 2: += creează o listă nouă
a += b înseamnă a = a + b: variabila primește o listă nouă, iar cine avea lista veche nu vede schimbarea.
void main() {
var cos = ['mere'];
final referinta = cos;
cos += ['pere'];
print('cos: $cos, referinta: $referinta');
referinta.addAll(['prune']);
print('referinta după addAll: $referinta');
}
Rezultat
cos: [mere, pere], referinta: [mere]
referinta după addAll: [mere, prune]
Greșeli frecvente
- Folosești
+într-o buclă mare (rezultat = rezultat + [x]): fiecare pas copiază toată lista. Foloseșteadd.
Comenzi înrudite
List.add: add adaugă un element la sfârșitul listei; addAll adaugă toate elementele unei alte colecții.Iterable.expand: expand transformă fiecare element în zero sau mai multe elemente și le pune cap la cap; followedBy lipește două iterabile.List: Lista din Dart: elemente în ordine, accesate după poziție, care poate crește sau scădea.