Junior — Middle
Peut-on utiliser une structure de données comme clé dans une carte ou une table de hachage?
sobes.tech IA
Réponse de l'IA
En Go, une structure de données peut être utilisée comme clé dans une carte (map) si elle satisfait aux exigences de comparabilité (comparable). Cela signifie que tous les champs de la structure doivent être de types pouvant être comparés à l’aide de l’opérateur ==.
Par exemple, les structures contenant uniquement des types de base (int, string, bool, etc.) ou d’autres structures comparables peuvent être des clés. Cependant, les structures contenant des slices, des cartes ou des fonctions ne peuvent pas être des clés, car ces types ne sont pas comparables.
Exemple:
package main
import "fmt"
type Point struct {
X, Y int
}
func main() {
m := make(map[Point]string)
p := Point{X: 1, Y: 2}
m[p] = "point"
fmt.Println(m[p]) // sortie: point
}
Si la structure contient des champs non comparables, le compilateur renverra une erreur lors de la tentative de l’utiliser comme clé de carte.