Maison >développement back-end >Golang >Comment puis-je déterminer de manière fiable la valeur zéro de n'importe quel type en Go ?
Détermination de la valeur zéro des types arbitraires dans Go
Dans Go, déterminer si une variable est sa valeur zéro peut être simple dans de nombreux cas . Cependant, la comparaison peut devenir difficile lorsqu’il s’agit de types qui ne sont pas directement comparables. En particulier, les tranches ne peuvent pas être évaluées à l'aide de simples contrôles d'égalité.
Une solution proposée pourrait être :
var v ArbitraryType v == reflect.Zero(reflect.TypeOf(v)).Interface()
Cependant, cette approche échoue car elle repose sur l'égalité des types, ce qui ne fonctionne pas pour tous les types.
Heureusement, Go 1.13 a introduit la méthode Value.IsZero() dans le package Reflect. Cette méthode fournit un moyen simple de déterminer si une valeur est sa valeur nulle, quel que soit son type.
if reflect.ValueOf(v).IsZero() { // v is zero, do something }
Cette méthode peut détecter la valeur zéro pour les types de base, ainsi que pour les types plus complexes tels que les canaux. , fonctions, tableaux, interfaces, cartes, pointeurs, tranches, pointeurs dangereux et même des structures. En tirant parti de Value.IsZero(), les développeurs peuvent facilement vérifier les valeurs nulles de manière générique et indépendante du type.
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!