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 :
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!