Ce face Set.from
Set.of(colectie) copiază elementele într-un set nou (care păstrează ordinea), eliminând duplicatele. Colecția trebuie să aibă deja elemente de tipul potrivit, iar analizorul verifică asta.
Set.from(colectie) acceptă orice Iterable, chiar și List<dynamic>; tipul fiecărui element se verifică abia la rulare. Folosește-l când vrei să schimbi tipul, de exemplu din List<num> în Set<int>.
Parametri
| Parametru | Descriere |
|---|---|
elements |
Elementele copiate în set-ul nou. |
Ce returnează
Un Set nou (un LinkedHashSet).
Exemple
Exemplul 1: Copie modificabilă
void main() {
const initiale = ['Ana', 'Mihai', 'Ana'];
final echipa = Set.of(initiale);
echipa.add('Ioana');
print(echipa);
print(initiale);
}
Rezultat
{Ana, Mihai, Ioana}
[Ana, Mihai, Ana]
Exemplul 2: Schimbarea tipului cu Set.from
void main() {
final List<num> valori = [3, 1, 3, 2];
final Set<int> intregi = Set<int>.from(valori);
print(intregi);
final List<dynamic> dinJson = ['IS', 'CJ', 'IS'];
final judete = Set<String>.from(dinJson);
print(judete);
}
Rezultat
{3, 1, 2}
{IS, CJ}
Greșeli frecvente
- Folosești
Set<int>.frompe o listă cu un elementdouble. Analizorul nu te oprește, dar la rulare apare o eroare de tip.
Comenzi înrudite
Set: Colecție fără elemente duplicate: fiecare valoare apare o singură dată, iar căutarea este rapidă.List.from: Creează o listă nouă cu elementele unei colecții; of verifică tipul la compilare, from la rulare.Map.of: Map.of face o copie modificabilă a unui map; Map.unmodifiable face o copie care nu mai poate fi schimbată.Iterable.toList: toList copiază elementele într-o listă nouă; toSet le copiază într-un set nou, fără duplicate.