Ce face Iterable.length
length returnează câte elemente are colecția. Pe List, Set și Map valoarea este cunoscută imediat. Pe un iterable leneș (rezultatul lui where, de exemplu), length trebuie să parcurgă toate elementele ca să le numere.
isEmpty și isNotEmpty sunt mai clare decât length == 0 și, pe iterabile leneșe, mai rapide: se opresc după primul element.
Ce returnează
Un int (length) sau un bool.
Exemple
Exemplul 1: Numărarea și verificarea colecțiilor
void main() {
final cos = ['pâine', 'lapte'];
print('${cos.length} produse');
print('gol? ${cos.isEmpty}, are ceva? ${cos.isNotEmpty}');
final scumpe = [12.5, 3.0, 45.9, 7.0].where((p) => p > 10);
print('${scumpe.length} produse peste 10 lei');
final mesaje = <String>[];
print(mesaje.isEmpty ? 'Niciun mesaj nou' : '${mesaje.length} mesaje');
}
Rezultat
2 produse
gol? false, are ceva? true
2 produse peste 10 lei
Niciun mesaj nou
Exemplul 2: Lungimea pe map, set și text
void main() {
final judete = {'IS': 'Iași', 'CJ': 'Cluj', 'B': 'București'};
print('${judete.length} județe, ${judete.keys.length} chei');
final litere = 'mississippi'.split('').toSet();
print('${litere.length} litere diferite: $litere');
}
Rezultat
3 județe, 3 chei
4 litere diferite: {m, i, s, p}
Greșeli frecvente
- Apelezi
lengthpe un iterable leneș doar ca să afli dacă are elemente: parcurgi tot. FoloseșteisNotEmpty.
Comenzi înrudite
List.length: Numărul de elemente al listei; pe listele extensibile se poate și seta, pentru a tăia sau lungi lista.Map: Colecție de perechi cheie–valoare: cauți rapid o valoare după cheia ei (nume, cod, oraș).Iterable.first: first și last dau primul și ultimul element; single dă singurul element și verifică faptul că este unul singur.Stream.length: length numără valorile până la închiderea stream-ului; isEmpty spune dacă stream-ul nu are nicio valoare.