Maison  >  Article  >  développement back-end  >  Génériques des fonctions Golang

Génériques des fonctions Golang

WBOY
WBOYoriginal
2024-04-21 08:39:01980parcourir

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 }
  • REMARQUE

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!

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