Cum funcționează un dicționar în limbajul de programare Swift?
sobes.tech AI
Răspuns de la AI
Dicționarul Dictionary în Swift reprezintă o colecție nesortată de perechi cheie-valoare. Fiecare cheie din dicționar este unică și este utilizată pentru accesul rapid la valoarea corespunzătoare. Este implementat pe baza unui tabel de dispersie.
Cheile trebuie să respecte protocolul Hashable, ceea ce asigură posibilitatea de a calcula un hash pentru fiecare cheie. Valorile pot fi de orice tip.
Operațiunile principale cu un dicționar includ:
- Crearea unui dicționar gol sau cu valori inițiale.
- Accesul la o valoare după cheie (returnează o valoare opțională, deoarece cheia poate să nu existe).
- Adăugarea sau actualizarea unei valori după cheie.
- Ștergerea unei valori după cheie.
- Iterarea peste perechile cheie-valoare.
- Obținerea colecțiilor tuturor cheilor sau a tuturor valorilor.
La adăugarea sau actualizarea unui element, Swift calculează hash-ul cheii, determină slotul în tabelul de dispersie și plasează acolo perechea cheie-valoare. La căutarea unui element după cheie, se efectuează un proces similar de calcul al hash-ului și acces la slotul corespunzător.
În cazul coliziunilor de hash-uri (când chei diferite au același hash), Swift utilizează metode de rezolvare a coliziunilor, cum ar fi chaining, pentru a stoca mai multe perechi în același slot.
La creșterea numărului de elemente, dicționarul poate efectua rehashing și modifica dimensiunea structurii de date subiacente pentru a menține performanța optimă.
Exemplu de utilizare:
// Crearea unui dicționar
var userInfo: [String: Any] = [
"name": "Alice",
"age": 30,
"city": "New York"
]
// Accesarea unei valori
if let name = userInfo["name"] as? String {
// ...
}
// Adăugarea/actualizarea unei valori
userInfo["job"] = "Developer"
userInfo["age"] = 31
// Ștergerea unei valori
userInfo["city"] = nil
// Iterare
for (key, value) in userInfo {
print("\(key): \(value)")
}