Maison  >  Article  >  développement back-end  >  Comment tester l’équivalence des cartes dans Golang ?

Comment tester l’équivalence des cartes dans Golang ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-16 22:26:03486parcourir

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.")
}

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!

Déclaration:
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