Junior — Middle
Lze objekt použít jako klíč v kolekci Dictionary nebo podobné datové struktuře?
sobes.tech AI
Odpověď od AI
V iOS (Swift nebo Objective-C) lze objekty používat jako klíče ve slovnících (Dictionary), ale objekt musí splňovat určité požadavky.
Ve Swiftu musí klíče slovníku odpovídat protokolu Hashable, což znamená, že objekt musí mít správně implementované metody hashování a porovnání na rovnost. To je nezbytné, aby slovník mohl efektivně ukládat a hledat hodnoty podle klíčů.
Příklad použití vlastního objektu jako klíče:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Pokud objekt neimplementuje Hashable, nelze jej použít jako klíč. V Objective-C musí být klíče slovníku objekty, které implementují metody -hash a -isEqual:.
Tedy, objekty lze používat jako klíče, pokud správně implementují hashování a porovnání.