Écriture de fonctions numériques génériques dans Go
Dans Go, lorsque l'on travaille avec différents types numériques, on peut rencontrer le besoin de fonctions capables de gérer toute donnée numérique. Nous explorons ici comment résoudre ce cas d'utilisation dans Go 1.18 et versions ultérieures, ainsi que les solutions possibles pour les versions antérieures.
Go 1.18 et versions ultérieures :
Avec l'introduction du type paramètres dans Go 1.18, définir une fonction générique est simple.
func add[T Number](a, b T) T { return a + b; }
Ici, T représente le paramètre de type, contraint par le nombre interface. Cette interface, définie à l'aide du package golang.org/x/exp/constraints, garantit que T est un type numérique. Cette approche permet d'utiliser deux types numériques (entier ou virgule flottante) comme arguments, et la fonction renvoie le résultat avec le même type.
Versions antérieures de Go :
Dans les versions antérieures de Go, il existe quelques méthodes pour gérer cette situation :
Conclusion :
La solution préférée dépend de la version Go utilisée. Pour Go 1.18 et supérieur, l’approche de fonction générique utilisant des paramètres de type et la contrainte Number est la plus concise et la plus efficace. Pour les versions antérieures, il s'agit de choisir entre la conversion en float ou la gestion de fonctions spécifiques au type.
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!