Maison >développement back-end >Golang >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 nullvar pi *int = nil var i interface{} i = pi fmt.Println(i == nil) // 结果为 falseMais 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()}.
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!