Maison >développement back-end >Golang >Génériques des fonctions Golang
Fonctions génériques en langage Go
Les fonctions génériques vous permettent de définir des fonctions communes pour différents types, augmentant ainsi la réutilisabilité et la flexibilité de votre code.
Syntaxe
La syntaxe d'une fonction générique est la suivante :
func <函数名>[T any](<参数列表>) <返回值类型> { // 函数体 }
où :
<function name></function>
est le nom de la fonction générique.
是泛型函数的名称。<t any></t>
表示函数接受的类型参数,any
关键字指示类型未知。
是函数所需的参数。
<t any></t>
indique les paramètres de type acceptés par la fonction, et le mot-clé any
indique que le type est inconnu. <parameter list></parameter>
sont les paramètres requis par la fonction. <return value type></return>
est le type renvoyé par la fonction.
Cas pratique
Nous créons une fonction générique qui compare deux valeurs et renvoie la plus grande valeur :
func Max[T comparable](a, b T) T { if a > b { return a } return b }Nous pouvons utiliser cette fonction pour comparer deux valeurs de tout type comparable :
maxInt := Max(10, 20) // int maxString := Max("hello", "world") // string
Contrainte
Vous pouvez utiliser des contraintes de type pour limiter les types qu'une fonction peut accepter. Par exemple, vous pouvez exiger que les types soient comparables ou implémenter une interface spécifique :func MaxComparable[T comparable](a, b T) T func MaxWithInterface[T any](a, b T) T where T interface{ CompareTo(T) int }
Les génériques utilisent le même mécanisme de méta-informations que la réflexion, ce qui peut dégrader les performances en cas de surutilisation. L'instanciation de type générique produit de nouveaux types, ce qui peut augmenter la surcharge de mémoire.
🎜Conclusion🎜🎜🎜Les fonctions génériques dans le langage Go fournissent des outils puissants pour écrire du code polyvalent et réutilisable. En utilisant des paramètres de type et des contraintes de type, vous pouvez créer des fonctions qui s'adaptent à diverses situations. 🎜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!