Kan een object worden gebruikt als sleutel in een Dictionary-collectie of vergelijkbare datastructuur?
sobes.tech AI
Antwoord van AI
In iOS (Swift of Objective-C) kunnen objecten worden gebruikt als sleutels in woordenboeken (Dictionary), maar het object moet aan bepaalde eisen voldoen.
In Swift moeten de sleutels van het woordenboek voldoen aan het protocol Hashable, dat wil zeggen dat het object correct geïmplementeerde hash- en gelijkheidsvergelijkingsmethoden moet hebben. Dit is nodig zodat het woordenboek efficiënt waarden kan opslaan en zoeken op sleutels.
Voorbeeld van het gebruik van een aangepast object als sleutel:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Als het object Hashable niet implementeert, kan het niet als sleutel worden gebruikt. In Objective-C moeten de sleutels van het woordenboek objecten zijn die de methoden -hash en -isEqual: implementeren.
Dus, objecten kunnen als sleutels worden gebruikt als ze correct hash- en vergelijkingsmethoden implementeren.