Maison >développement back-end >Golang >Comment puis-je effectuer des contrôles d'égalité sur les valeurs de l'interface {} dans Go ?

Comment puis-je effectuer des contrôles d'égalité sur les valeurs de l'interface {} dans Go ?

DDD
DDDoriginal
2024-11-30 14:09:13738parcourir

How Can I Perform Equality Checks on interface{} Values in Go?

Vérifications d'égalité d'interface avec interface{}

Dans Go, il est essentiel de comprendre les subtilités de la vérification d'égalité des valeurs stockées dans les tranches d'interface{}. Ce guide explore les méthodes disponibles pour vérifier l'égalité de différents types de valeur, y compris les structures personnalisées, par rapport à une valeur d'interface {} donnée.

Approche pour les types comparables

Lorsqu'il s'agit de types comparables, tels que en tant qu'entiers (int), les contrôles d'égalité sont simples. Vous pouvez comparer directement les valeurs à l'aide de l'opérateur ==.

var v interface{} = 10

for i := 0; i < len(A); i++ {
  if A[i] == v {
    fmt.Println("Gotcha!")
    break
  }
}

Vérification de l'égalité des structures personnalisées

Pour les structures personnalisées, qui sont également comparables, la vérification de l'égalité dépend de la comparabilité des champs. Si tous les champs sont comparables, vous pouvez comparer les structures directement en utilisant ==. Sinon, vous devez définir votre propre fonction d'égalité.

Go Spécification Insights

La référence à la spécification du langage de programmation Go fournit des éclaircissements sur l'égalité de l'interface.

  • Les valeurs de l'interface sont comparables si elles ont des types dynamiques identiques et des valeurs dynamiques égales ou si les deux sont nulles.
  • Les valeurs non-interface et les valeurs d'interface sont comparables si le type non-interface implémente le type d'interface et leurs valeurs sont égales.
  • Les valeurs de structure sont comparables si tous leurs champs sont comparables, et égales si leurs champs correspondants sont égaux.

Démonstration de Playground

Le terrain de jeu suivant illustre la vérification de l'égalité pour différents types de valeurs : https://play.golang.org/p/bgO1_V87v9k

Conclusion

Comprendre la vérification de l'égalité pour les valeurs de l'interface{} simplifie la programmation Go. N'oubliez pas que les valeurs d'interface, les structures et les types comparables ont des règles d'égalité spécifiques qui doivent être suivies pour des résultats précis.

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