Junior — Middle
Welke eigenschappen moet een object hebben dat het Hashable-protocol implementeert, zodat het in hash-tabellen kan worden gebruikt?
sobes.tech AI
Antwoord van AI
Een object dat het Hashable-protocol in iOS (Swift) implementeert, moet de volgende eigenschappen bezitten:
-
Conformiteit aan het Hashable-protocol — het object moet de methode
hash(into:)implementeren, die alle belangrijke eigenschappen voor hashing toevoegt aan de hashfunctie. -
Gelijkheid (Equatable) — objecten die als gelijk worden beschouwd (via de operator
==) moeten dezelfde hash hebben.
Dit is nodig zodat het object in hash-tabellen kan worden gebruikt (bijvoorbeeld in Set of als sleutel in Dictionary), waarbij de hash de positie van het element bepaalt en gelijkheid de uniciteit.
Voorbeeld van implementatie:
struct User: Hashable {
var id: Int
var name: String
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
static func == (lhs: User, rhs: User) -> Bool {
return lhs.id == rhs.id
}
}
Hier is id een unieke identifier, waarmee de hash en gelijkheid worden bepaald.