Dans Go, toutes les variables ne prennent pas en charge les opérations de comparaison, en particulier pour les types complexes comme les tranches. S'appuyer sur des comparaisons directes peut conduire à des résultats inattendus dans de tels cas.
Heureusement, Go 1.13 a introduit la méthode Value.IsZero() dans le package Reflect pour résoudre ce problème. Cette méthode offre un moyen simple de déterminer si une variable de type arbitraire a une valeur nulle. Voici comment l'utiliser :
if reflect.ValueOf(v).IsZero() { // v is zero, do something }
L'expression réflexion.ValueOf(v) extrait l'objet réflexion.Value pour la variable v. La méthode IsZero() est ensuite invoquée sur cet objet pour vérifier si sa valeur est zéro.
Cette approche s'adapte non seulement aux types primitifs, mais prend également en charge des types plus complexes tels que Chan, Func, Array, Interface, Map, Ptr, Slice, UnsafePointer et Struct.
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!