Junior — Middle
Quali tipi di oggetti sono ammessi come elementi-chiave in una collezione di tipo Set?
sobes.tech AI
Risposta dell'AI
In una collezione di tipo Set su iOS (ad esempio, NSSet o Swift Set), gli elementi-chiave possono essere oggetti che soddisfano i seguenti requisiti:
- In Objective-C (NSSet): gli oggetti devono supportare i metodi
-hashe-isEqual:per un confronto e un hashing corretti. - In Swift (Set): gli elementi devono conformarsi al protocollo
Hashable, cioè avere un valore hash e la capacità di confrontarsi per uguaglianza.
Ciò è necessario affinché la collezione possa memorizzare in modo efficiente elementi unici e eseguire operazioni di ricerca rapidamente.
Esempio in Swift:
struct Person: Hashable {
let id: Int
let name: String
}
var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))
Pertanto, qualsiasi oggetto che implementi Hashable (in Swift) o i metodi hash e isEqual: (in Objective-C) può essere un elemento di Set.