Sobes.tech
Junior — Middle

Quelles conditions et caractéristiques doivent avoir les objets pour pouvoir les utiliser comme clés dans un dictionnaire?

sobes.tech IA

Réponse de l'IA

Pour qu’un objet puisse être utilisé comme clé dans un dictionnaire (par exemple, dans NSDictionary ou Swift Dictionary), il doit satisfaire aux conditions suivantes :

  • Hachabilité : l’objet doit avoir une méthode de calcul de hachage correctement implémentée (hash en Swift, hashValue ou hash(into:)), afin que le dictionnaire puisse retrouver rapidement la clé.
  • Comparabilité pour l’égalité : l’objet doit implémenter correctement la méthode de comparaison d’égalité (isEqual en Objective-C, Equatable en Swift), pour que le dictionnaire puisse distinguer différentes clés.

Par exemple, en Swift, pour utiliser un type personnalisé comme clé, il faut implémenter les protocoles Hashable et Equatable :

struct Person: Hashable {
    let id: Int
    let name: String
}

var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"

Ainsi, les objets doivent être immuables sur les champs participant au calcul du hash et à la comparaison, pour que les clés restent stables dans le dictionnaire.