Sobes.tech
Junior — Middle

Quelles sont les limitations et caractéristiques de l'utilisation des clés dans la structure de données map?

sobes.tech IA

Réponse de l'IA

En Go, les clés dans une map doivent satisfaire à certaines exigences:

  • La clé doit être comparable: Cela signifie que le type de la clé doit supporter l'opération de comparaison == et !=. Par exemple, les types de base (int, string, bool), les pointeurs, les structures et les tableaux, si tous leurs champs sont comparables.

  • Il est interdit d'utiliser des slices, des maps et des fonctions comme clés: Ces types ne sont pas comparables et entraîneront une erreur de compilation.

  • Caractéristiques particulières:

    • Les structures peuvent être des clés si tous leurs champs sont comparables.
    • Si une structure contient un champ de type slice ou map, elle ne peut pas être une clé.
  • Performance: L'utilisation de structures volumineuses comme clés peut être inefficace en raison de la copie.

Exemple:

m := make(map[string]int) // string est une clé valide

// Clé non valide:
// m2 := make(map[[]int]string) // erreur de compilation

// Structure avec des champs comparables:
 type Point struct { X, Y int }
 m3 := make(map[Point]string)
 m3[Point{1,2}] = "A"

Ainsi, lors du choix d'une clé, il est important de prendre en compte sa comparabilité et son immutabilité.