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!