Peut-on utiliser un objet comme clé dans une collection Dictionary ou une structure de données similaire?
sobes.tech IA
Réponse de l'IA
Dans iOS (Swift ou Objective-C), il est possible d'utiliser des objets comme clés dans des dictionnaires, mais l'objet doit respecter certaines exigences.
En Swift, les clés du dictionnaire doivent conformer au protocole Hashable, c'est-à-dire que l'objet doit avoir des méthodes de hachage et de comparaison d'égalité correctement implémentées. Cela est nécessaire pour que le dictionnaire puisse stocker et rechercher efficacement des valeurs par leurs clés.
Exemple d'utilisation d'un objet personnalisé comme clé :
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Si l'objet n'implémente pas Hashable, il ne peut pas être utilisé comme clé. En Objective-C, les clés du dictionnaire doivent être des objets qui implémentent les méthodes -hash et -isEqual:.
Ainsi, il est possible d'utiliser des objets comme clés s'ils implémentent correctement le hachage et la comparaison.