Maison  >  Article  >  développement back-end  >  Comment déterminer si un pointeur est nul dans Golang

Comment déterminer si un pointeur est nul dans Golang

尚
original
2020-01-13 10:51:596894parcourir

Comment déterminer si un pointeur est nul dans Golang

Méthode de Golang pour déterminer si un pointeur est vide :

1 Lorsque vous connaissez le type, vous pouvez naturellement utiliser des assertions de type, puis déterminer s'il est vide. Par exemple, ai, ok := i.(*int), puis jugez ai == nil.

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

func IsNil(i interface{}) bool {
    defer func() {
        recover()
    }()
    vi := reflect.ValueOf(i)
    return vi.IsNil()
}

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

func IsNil(i interface{}) bool {
    vi := reflect.ValueOf(i)
    if vi.Kind() == reflect.Ptr {
        return vi.IsNil()
    }
    return false
}

Pour plus de connaissances sur Golang, veuillez faire attention à la colonne tutoriel Golang du site Web PHP chinois.

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