Comment peut-on utiliser des clés dans une map pour créer des structures de données qui ne sont pas initialement prévues dans le langage?
sobes.tech IA
Réponse de l'IA
Dans Go, une map est un tableau associatif où les clés peuvent être non seulement des types simples, mais aussi composés, tant qu'ils sont comparables (par exemple, chaînes, nombres, pointeurs, structures sans slices ni cartes). Cela permet d'utiliser des maps pour créer des structures de données complexes qui ne sont pas initialement présentes dans le langage.
Par exemple, vous pouvez utiliser une structure comme clé pour implémenter une matrice bidimensionnelle ou un graphe :
// La clé est les coordonnées d'un point
type Point struct {
X, Y int
}
// La valeur peut être une couleur ou un poids
var matrix = make(map[Point]string)
matrix[Point{X:1, Y:2}] = "red"
matrix[Point{X:3, Y:4}] = "blue"
Vous pouvez également utiliser une map pour implémenter un ensemble, où la clé est l'élément et la valeur est une structure vide (struct{}), qui occupe 0 octets :
set := make(map[string]struct{})
set["apple"] = struct{}{}
set["banana"] = struct{}{}
// Vérification de la présence d'un élément
if _, exists := set["apple"]; exists {
fmt.Println("apple est dans l'ensemble")
}
Ainsi, les maps en Go sont un outil flexible pour créer diverses structures de données, étendant les capacités du langage.