Ce face List.operator[]
Operatorul [] citește elementul de pe o poziție, de la 0. Accesul este imediat, oricât de mare ar fi lista. Perechea lui, []=, scrie o valoare nouă pe o poziție existentă.
Poziția trebuie să fie între 0 și length - 1; altfel apare RangeError. Dart nu acceptă poziții negative (lista[-1] nu înseamnă ultimul element) și nu lungește lista când scrii după final: pentru asta folosește add.
Parametri
| Parametru | Descriere |
|---|---|
index |
Poziția, de la 0 la length - 1. |
value |
Pentru []=: valoarea nouă. |
Ce returnează
[]: elementul de pe poziție.
Exemple
Exemplul 1: Citire și scriere după poziție
void main() {
final orar = ['matematică', 'română', 'sport'];
print(orar[0]);
print(orar[orar.length - 1]);
orar[2] = 'informatică';
print(orar);
orar[0] += ' (test)';
print(orar[0]);
}
Rezultat
matematică
sport
[matematică, română, informatică]
matematică (test)
Exemplul 2: Poziție inexistentă
void main() {
final note = [9, 10];
try {
print(note[2]);
} on RangeError catch (e) {
print(e);
}
try {
note[-1] = 5;
} on RangeError catch (e) {
print(e);
}
}
Rezultat
RangeError (length): Invalid value: Not in inclusive range 0..1: 2
RangeError (index): Invalid value: Not in inclusive range 0..1: -1
Greșeli frecvente
- Scrii
lista[lista.length] = xca să adaugi la final: apareRangeError. Foloseșteadd.
Comenzi înrudite
List.length: Numărul de elemente al listei; pe listele extensibile se poate și seta, pentru a tăia sau lungi lista.Iterable.elementAt: Returnează elementul de la o poziție; elementAtOrNull returnează null dacă poziția nu există.Iterable.first: first și last dau primul și ultimul element; single dă singurul element și verifică faptul că este unul singur.Map.operator[]: map[cheie] citește valoarea unei chei (sau null), iar map[cheie] = valoare adaugă sau înlocuiește o pereche.