Maison > développement back-end > Golang > Comment va-t-il comparer les valeurs de l'interface {}, y compris les structures ?

Comment va-t-il comparer les valeurs de l'interface {}, y compris les structures ?

DDD
Libérer: 2024-12-03 10:34:11
original
524 Les gens l'ont consulté

How Does Go Compare Interface{} Values, Including Structs?

Comparaison des valeurs d'interface{}

Dans Go, les opérateurs d'égalité (== et !=) peuvent être utilisés pour comparer les valeurs d'interface{}. Cependant, étant donné que les valeurs d'interface{} peuvent contenir des valeurs de différents types, il est important de comprendre comment ces valeurs sont comparées.

Égalité des valeurs d'interface

Les valeurs d'interface sont comparables. Deux valeurs d'interface sont considérées comme égales si :

  • Elles ont des types dynamiques identiques et des valeurs dynamiques égales, ou
  • Les deux ont une valeur nulle.

Égalité des valeurs d'interface avec les structures

Dans le cas où les valeurs d'interface{} contiennent des valeurs de structure personnalisées, les règles de comparaison de Go s'appliquent. Les valeurs de structure sont considérées comme comparables si tous leurs champs sont comparables. Deux valeurs de structure sont considérées comme égales si leurs champs non vides ont des valeurs égales.

Exemple de code

Considérez l'extrait de code suivant :

type MyStruct struct {
    Field1 int
    Field2 string
}

var A = []interface{}{}
v := MyStruct{1, "Test"}

for _, i := range A {
    if i == v {
        fmt.Println("Gotcha!")
        break
    }
}
Copier après la connexion

Dans cet exemple, le L'opérateur == est utilisé pour comparer une valeur d'interface{} (v) avec des valeurs dans une tranche d'interface{} (A). Puisque les valeurs MyStruct sont comparables, la comparaison retournera vrai si les champs correspondants dans v et les éléments dans A sont égaux.

Conclusion

En comprenant les règles d'égalité de Go pour les valeurs et les structures de l'interface{} , les développeurs peuvent comparer ces valeurs en toute confiance dans leur code. Le système clair et flexible de Go garantit que les contrôles d'égalité fonctionnent comme prévu, quels que soient les types de données sous-jacents.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal