Junior — Middle
Aké podmienky a vlastnosti musia objekty spĺňať, aby ich bolo možné použiť ako kľúče v slovníku?
sobes.tech AI
Odpoveď od AI
Aby mohol byť objekt použitý ako kľúč v slovníku (napríklad v NSDictionary alebo Swift Dictionary), musí spĺňať nasledujúce podmienky:
- Hashovateľnosť: objekt musí mať správne implementovanú metódu výpočtu hashu (
hashv Swift,hashValuealebohash(into:)), aby slovník mohol rýchlo nájsť kľúč. - Porovnateľnosť na rovnosť: objekt musí správne implementovať metódu porovnania na rovnosť (
isEqualv Objective-C,Equatablev Swift), aby slovník mohol odlíšiť rôzne kľúče.
Napríklad, v Swift, na použitie vlastného typu ako kľúča, je potrebné implementovať protokoly Hashable a Equatable:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Týmto spôsobom musia byť objekty nemenné v poliach, ktoré sa podieľajú na výpočte hashu a porovnaní, aby kľúče zostali stabilné v slovníku.