Maison >développement back-end >Golang >Comment vérifier en toute sécurité la présence de Nil dans les interfaces Go ?

Comment vérifier en toute sécurité la présence de Nil dans les interfaces Go ?

DDD
DDDoriginal
2024-12-09 02:48:13405parcourir

How to Safely Check for Nil in Go Interfaces?

Comment vérifier les interfaces Nil et Nil dans Go

Dans Go, la vérification des interfaces Nil et Nil est une tâche courante. Cependant, l'implémentation actuelle de la fonction isNil n'est pas optimale.

La fonction réflexion.ValueOf(a).IsNil() panique si le type de la valeur est autre que Chan, Func, Map, Ptr, Interface ou Tranche. Pour éviter cette panique, la fonction isNil inclut un mécanisme recovery().

Solution alternative

Heureusement, il existe un moyen plus simple et plus efficace de gérer cette vérification. Selon la discussion sur la liste de diffusion golang-nuts, vous pouvez vous fier à une simple comparaison avec nil si vous suivez certaines règles :

  • Ne jamais stocker (*T) (nil) dans une interface.
  • Attribuer un néant non typé à une interface est toujours sûr.

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