Junior — Middle
Je možné použiť objekt ako kľúč v kolekcii Dictionary alebo podobnej dátovej štruktúre?
sobes.tech AI
Odpoveď od AI
V iOS (Swift alebo Objective-C) je možné použiť objekty ako kľúče v slovníkoch (Dictionary), ale objekt musí spĺňať určité požiadavky.
V Swift musí kľúče slovníka zodpovedať protokolu Hashable, čo znamená, že objekt musí mať správne implementované metódy hashovania a porovnávania na rovnosť. To je nevyhnutné, aby slovník mohol efektívne ukladať a vyhľadávať hodnoty podľa kľúčov.
Príklad použitia vlastného objektu ako kľúča:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Ak objekt neimplementuje Hashable, nemôže byť použitý ako kľúč. V Objective-C musia byť kľúče slovníka objekty, ktoré implementujú metódy -hash a -isEqual:.
Teda, objekty môžu byť použité ako kľúče, ak správne implementujú hashovanie a porovnávanie.