Sobes.tech
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.