Maison > développement back-end > Golang > le corps du texte

Comment puis-je utiliser efficacement les structures pour créer des clés composites dans les cartes Go ?

Mary-Kate Olsen
Libérer: 2024-11-10 04:12:03
original
204 Les gens l'ont consulté

How can I effectively use structs to create composite keys in Go maps?

Utilisation de structures pour les clés composites dans Go Maps

Dans Go, les clés composites dans les cartes de hachage permettent de combiner plusieurs valeurs pour former une clé unique pour la carte. Contrairement aux clés composites des bases de données, celles-ci sont utilisées à des fins de calcul.

Pour stocker les valeurs calculées de pow(x, y) dans une table de hachage, vous pouvez définir une clé composite à l'aide d'une structure :

type Key struct {
    X, Y int
}
Copier après la connexion

Cette structure combine les valeurs x et y pour créer une clé. Vous pouvez utiliser cette clé dans une carte comme suit :

m := map[Key]int{}
m[Key{2, 2}] = 4
m[Key{2, 3}] = 8

fmt.Println("2^2 =", m[Key{2, 2}])
fmt.Println("2^3 =", m[Key{2, 3}])
Copier après la connexion

Sortie :

2^2 = 4
2^3 = 8
Copier après la connexion

Les structures sont utilisées comme clés car elles fournissent un moyen simple de représenter plusieurs valeurs comme une seule unité. . Ils garantissent que les opérateurs de comparaison appropriés (== et !=) sont définis, permettant une récupération efficace des clés à partir de la carte.

L'utilisation de pointeurs comme types de clés n'est pas recommandée, car la comparaison de pointeurs ne vérifie que les adresses mémoire plutôt que les valeurs réelles. . Les tableaux peuvent également être utilisés comme types de clés, mais les structures offrent plus de flexibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal