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

Comment tester l'équivalence des cartes dans Golang ?

Mary-Kate Olsen
Libérer: 2024-11-16 22:26:03
original
490 Les gens l'ont consulté

How to Test Equivalence of Maps in Golang?

Test de l'équivalence des cartes dans Golang

Lors de l'écriture de tests basés sur des tables impliquant des cartes, déterminer leur équivalence peut être difficile. Une approche consiste à vérifier manuellement l'égalité des longueurs et les paires clé-valeur individuelles, mais cela devient répétitif pour différents types de cartes.

Approche idiomatique

La bibliothèque Go propose une solution intégrée : Reflect.DeepEqual. Cette fonction prend deux arguments interface{} et compare récursivement leurs valeurs. Pour les cartes, il compare les longueurs, les clés et les valeurs en suivant les étapes suivantes :

  1. Vérifie si les deux cartes sont nulles.
  2. S'assure qu'elles ont la même longueur.
  3. Vérifie s'ils ont le même ensemble de paires (clé, valeur).

Exemple d'utilisation

Pour comparer deux cartes, m1 et m2, utilisez le code suivant :

import "reflect"

eq := reflect.DeepEqual(m1, m2)
if eq {
    fmt.Println("They're equal.")
} else {
    fmt.Println("They're unequal.")
}
Copier après la connexion

Cette solution évite le besoin d'une logique de comparaison personnalisée et fonctionne avec différents types de cartes. Cependant, notez qu'il comparera également les valeurs non cartographiques si elles sont transmises incorrectement.

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