È possibile usare un oggetto come chiave in una collezione Dictionary o in una struttura dati simile?
sobes.tech AI
Risposta dell'AI
In iOS (Swift o Objective-C), è possibile utilizzare oggetti come chiavi nei dizionari (Dictionary), ma l'oggetto deve soddisfare determinati requisiti.
In Swift, le chiavi del dizionario devono conformarsi al protocollo Hashable, cioè l'oggetto deve avere metodi di hash e confronto di uguaglianza correttamente implementati. Questo è necessario affinché il dizionario possa memorizzare e cercare valori in modo efficiente tramite le chiavi.
Esempio di utilizzo di un oggetto personalizzato come chiave:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Se l'oggetto non implementa Hashable, non può essere usato come chiave. In Objective-C, le chiavi del dizionario devono essere oggetti che implementano i metodi -hash e -isEqual:.
Pertanto, è possibile usare oggetti come chiavi se implementano correttamente l'hash e il confronto.