Junior — Middle
Welke soorten objecten mogen worden gebruikt als sleutels in een Set-collectie?
sobes.tech AI
Antwoord van AI
In een collectie van het type Set op iOS (bijvoorbeeld NSSet of Swift Set) kunnen de sleutel-elementen objecten zijn die aan de volgende eisen voldoen:
- In Objective-C (NSSet): objecten moeten de methoden
-hashen-isEqual:ondersteunen voor correcte vergelijking en hashing. - In Swift (Set): de elementen moeten voldoen aan het protocol
Hashable, dat wil zeggen, een hash-waarde hebben en vergelijkingsmogelijkheden voor gelijkheid.
Dit is nodig zodat de collectie efficiënt unieke elementen kan opslaan en snel zoekbewerkingen kan uitvoeren.
Voorbeeld in Swift:
struct Person: Hashable {
let id: Int
let name: String
}
var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))
Dus kunnen alle objecten die Hashable implementeren (in Swift) of de methoden hash en isEqual: (in Objective-C) bevatten, elementen van een Set zijn.