Maison > développement back-end > Golang > Comment puis-je vérifier les valeurs zéro des types arbitraires dans Go ?

Comment puis-je vérifier les valeurs zéro des types arbitraires dans Go ?

Susan Sarandon
Libérer: 2024-11-28 06:49:11
original
623 Les gens l'ont consulté

How Can I Check for Zero Values of Arbitrary Types in Go?

Vérification de la valeur zéro des types arbitraires dans Golang

L'une des tâches courantes en programmation consiste à déterminer si une variable est initialisée ou a son valeur par défaut. Cependant, cela peut être difficile dans Golang en raison de l'absence de valeur zéro universelle pour tous les types.

Défi de la comparaison

L'approche conventionnelle consistant à comparer une variable à la valeur Zero() de la réflexion ne fonctionne pas toujours car tous les types ne sont pas comparables. Par exemple, les tranches ne sont pas comparables, ce qui rend impossible l'utilisation du code suivant :

var v ArbitraryType
if v == reflect.Zero(reflect.TypeOf(v)).Interface() {
    // v is zero
}
Copier après la connexion

Solution avec Value.IsZero()

Heureusement, Go 1.13 a introduit la méthode Value.IsZero() dans le package Reflect. Cette méthode fournit une solution pour vérifier si une variable de type arbitraire est nulle. La syntaxe est la suivante :

reflect.ValueOf(v).IsZero()
Copier après la connexion

Cette méthode fonctionne non seulement pour les types de base mais également pour :

  • Chan
  • Func
  • Array
  • Interface
  • Carte
  • Ptr
  • Slice
  • UnsafePointer
  • Struct

Utilisation Exemple

Pour déterminer si une variable v d'un type arbitraire est nulle :

if reflect.ValueOf(v).IsZero() {
    // v is zero
}
Copier après la connexion

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 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