Junior — Middle
Jaké podmínky a vlastnosti musí objekty splňovat, aby je bylo možné použít jako klíče ve slovníku?
sobes.tech AI
Odpověď od AI
Aby mohl být objekt použit jako klíč ve slovníku (například v NSDictionary nebo Swift Dictionary), musí splňovat následující podmínky:
- Hashovatelnost: objekt musí mít správně implementovanou metodu výpočtu hashe (
hashve Swiftu,hashValuenebohash(into:)), aby slovník mohl rychle najít klíč. - Porovnání na rovnost: objekt musí správně implementovat metodu porovnání na rovnost (
isEqualv Objective-C,Equatableve Swiftu), aby slovník mohl odlišit různé klíče.
Například ve Swiftu, pro použití vlastního typu jako klíče, je třeba implementovat 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 způsobem musí být objekty neměnné v polích, které se podílejí na výpočtu hashe a porovnání, aby klíče zůstaly stabilní v slovníku.