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 ?

Comment puis-je déterminer de manière fiable la valeur zéro de n'importe quel type en Go ?

Patricia Arquette
Libérer: 2024-11-27 10:21:09
original
403 Les gens l'ont consulté

How Can I Reliably Determine the Zero Value of Any Type in 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()
Copier après la connexion

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
}
Copier après la connexion

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!

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