Maison > développement back-end > Golang > le corps du texte

Comment vérifier le pointeur nul dans Golang

(*-*)浩
Libérer: 2019-12-31 14:35:32
original
7795 Les gens l'ont consulté

Comment vérifier le pointeur nul dans Golang

Lors de l'attribution d'un objet pointeur nul à une interface                                                                               eeCe n'est pas C'est difficile à comprendre, car i = pi, au lieu d'attribuer zéro à je, je pointe vers l'objet pi.

Déterminer si le pointeur dans l'interface est nul


Donc, la question est maintenant de savoir comment déterminer si le pointeur dans l'interface est nul nul?

Lorsque vous connaissez le type, vous pouvez naturellement utiliser l'assertion de type, puis la tester comme nulle. Par exemple, ai, ok := i.(*int), puis jugez ai == nil.

Je ne sais pas de quel type de pointeur il s'agit, je dois donc utiliser la réflexion vi := reflex.ValueOf(i), puis utiliser vi.IsNil() pour juger. Mais si je n'est pas un pointeur, une exception se produira lors de l'appel de IsNil. Vous devrez peut-être écrire une fonction comme celle-ci pour vérifier null

   var pi *int = nil
    var i interface{}
    i = pi
    fmt.Println(i == nil) // 结果为 false
Copier après la connexion

Mais ce n'est vraiment pas beau d'imposer un report de récupération comme celui-ci. ça, donc j'utilise le jugement de type. C'est devenu comme ça

func IsNil(i interface{}) bool {
    defer func() {
        recover()
    }()
    vi := reflect.ValueOf(i)
    return vi.IsNil()}
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!

Étiquettes associées:
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