Junior — Middle
Jak określić poprawny typ klucza do użycia w słowniku?
sobes.tech AI
Odpowiedź od AI
W iOS (Swift) klucz dla słownika musi spełniać protokół Hashable. Oznacza to, że klucz musi mieć możliwość obliczenia wartości hash i porównania go z innymi kluczami w celu sprawdzenia równości, aby słownik mógł efektywnie przechowywać i wyszukiwać wartości.
Na przykład, standardowe typy, takie jak String, Int, UUID, już implementują Hashable i nadają się do użycia jako klucze.
Jeśli tworzysz własny typ dla klucza, musisz zaimplementować protokół Hashable:
struct User: Hashable {
let id: Int
let name: String
}
var dict: [User: String] = [:]
dict[User(id: 1, name: "Alice")] = "Developer"
Zatem, prawidłowy typ klucza to taki, który:
- implementuje
Hashable; - ma unikalne wartości dla kluczy, aby uniknąć kolizji;
- jest niezmienny (lepiej używać struktur lub właściwości niezmiennych).