Maison >développement back-end >Golang >Comment gérer les valeurs par défaut pour les types génériques dans Go ?

Comment gérer les valeurs par défaut pour les types génériques dans Go ?

DDD
DDDoriginal
2024-12-23 03:46:10220parcourir

How to Handle Default Values for Generic Types in Go?

Valeur par défaut pour les types génériques

Le retour de zéro pour n'importe quel type n'est pas autorisé dans Go. Même pour les types génériques, où T peut représenter n’importe quel type, nil n’est pas une option valide. Les types tels que les structures et les entiers n'ont pas de représentation nulle.

Au lieu de cela, la valeur zéro pour l'argument de type spécifique utilisé pour T peut être renvoyée. La valeur zéro varie selon le type :

  • Nil pour les pointeurs et les tranches
  • Chaîne vide pour les chaînes
  • 0 pour les entiers et les flottants

Pour renvoyer la valeur zéro, déclarez une variable de type T et retournez it :

func getZero[T any]() T {
    var result T
    return result
}

Par exemple, en utilisant la fonction getZero :

i := getZero[int]()
fmt.Printf("%T %v\n", i, i) // Output: int 0

s := getZero[string]()
fmt.Printf("%T %q\n", s, s) // Output: string ""

p := getZero[image.Point]()
fmt.Printf("%T %v\n", p, p) // Output: image.Point (0,0)

f := getZero[*float64]()
fmt.Printf("%T %v\n", f, f) // Output: *float64 <nil>

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