Middle
Quels types de données peuvent être utilisés comme clés?
sobes.tech IA
Réponse de l'IA
En Go, les clés dans une map ne peuvent être que des types qui supportent l'opération de comparaison (l'opérateur ==). Cela est dû au fait que, pour rechercher une clé dans une table de hachage, il est nécessaire de comparer les clés pour l'égalité.
Types pouvant être utilisés comme clés :
- Types primitifs :
int,float64,string,bool, etc. - Pointeurs
- Structures, si tous leurs champs sont comparables
- Tableaux, si les éléments sont comparables
Types ne pouvant pas être utilisés comme clés :
- Slices (
slice) - Maps (
map) - Fonctions
Cela est dû au fait que ces types ne supportent pas la comparaison avec ==.
Exemple :
m := make(map[string]int)
m["key"] = 42
// Structure avec des champs comparables
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1, 2}] = "Un point"
Si vous essayez d'utiliser un slice ou une map comme clé, le compilateur renverra une erreur.