Junior — Middle
Quali condizioni e caratteristiche devono avere gli oggetti per poter essere usati come chiavi in un dizionario?
sobes.tech AI
Risposta dell'AI
Affinché un oggetto possa essere utilizzato come chiave in un dizionario (ad esempio, in NSDictionary o Swift Dictionary), deve soddisfare le seguenti condizioni:
- Hashability: l'oggetto deve avere un metodo di calcolo dell'hash correttamente implementato (
hashin Swift,hashValueohash(into:)), affinché il dizionario possa trovare rapidamente la chiave. - Comparabilità per uguaglianza: l'oggetto deve implementare correttamente il metodo di confronto di uguaglianza (
isEqualin Objective-C,Equatablein Swift), affinché il dizionario possa distinguere le diverse chiavi.
Ad esempio, in Swift, per usare un tipo personalizzato come chiave, è necessario implementare i protocolli Hashable e Equatable:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
In questo modo, gli oggetti devono essere immutabili nei campi che partecipano al calcolo dell'hash e del confronto, affinché le chiavi rimangano stabili nel dizionario.