Sobes.tech
Junior — Middle

Peut-on utiliser des structures comme clés dans un tableau associatif ou une carte?

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 ==). Les structures peuvent être utilisées comme clés si tous leurs champs sont comparables. Par exemple, si une structure ne contient que des types de base (int, string, etc.), elle peut être utilisée comme clé. Cependant, si la structure contient des slices, des maps ou des fonctions, elle ne peut pas être utilisée comme clé.

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 générera une erreur.