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 {...}
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 :
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 }
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
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!