Maison > développement back-end > Golang > Comment gérer le retour des valeurs nulles pour les types génériques dans Go ?

Comment gérer le retour des valeurs nulles pour les types génériques dans Go ?

Patricia Arquette
Libérer: 2024-12-31 16:05:11
original
163 Les gens l'ont consulté

How to Handle Returning Nil Values for Generic Types in Go?

Renvoi des valeurs par défaut pour les types génériques

Dans Go, l'instruction "ne peut pas utiliser nil comme valeur T dans l'instruction de retour" se produit lors de la tentative de renvoie nil pour un type générique. En effet, nil n'est pas une valeur valide pour tous les types. Par exemple, dans le code fourni :

func (list *mylist[T]) pop() T {...}
func (list *mylist[T]) getfirst() T {...}
Copier après la connexion

Si T est de type int, il n'y a pas de valeur nulle raisonnable. De même, pour les structures, nil n'est pas une valeur valide.

Au lieu de cela, vous devez utiliser la valeur zéro pour le type donné. La valeur zéro est :

  • nil pour les pointeurs et les tranches
  • "" pour les chaînes
  • 0 pour les entiers et les nombres à virgule flottante

Voici comment renvoyer la valeur zéro à l'aide d'une fonction générique :

func getZero[T any]() T {
    var result T
    return result
}
Copier après la connexion

Cette fonction renvoie la valeur zéro pour tout type utilisé comme argument de type.

Le test de la fonction donne les résultats suivants :

int 0
string ""
image.Point (0,0)
*float64 nil
Copier après la connexion

Comme vous pouvez le voir, des valeurs zéro appropriées sont renvoyées pour différents types, fournissant une valeur par défaut raisonnable pour les fonctions et types génériques.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal