List.operator[] în Dart

List: liste Dart 2.0

lista[i] citește elementul de pe poziția i; lista[i] = x îl înlocuiește.

Sintaxă
E operator [](int index)
void operator []=(int index, E value)

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] = x ca să adaugi la final: apare RangeError. Folosește add.

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.