Maison > développement back-end > Golang > Comment les génériques activent-ils de véritables fonctions génériques dans Go ?

Comment les génériques activent-ils de véritables fonctions génériques dans Go ?

DDD
Libérer: 2024-12-18 15:08:13
original
403 Les gens l'ont consulté

How Do Generics Enable True Generic Functions in Go?

Fonctions génériques dans Go

Les types d'interface dans Go peuvent contenir n'importe quel type sans nécessiter aucune méthode implémentée, créant l'impression qu'ils servent de forme de fonctions génériques. Cependant, ce n’est pas le cas. Les véritables fonctions génériques, dont le type est inconnu au moment de la compilation, n'étaient pas prises en charge dans Go avant la version 1.18.

Dans Go 1.18, les génériques ont été introduits, permettant la création de fonctions génériques. Une fonction générique peut être définie à l'aide du mot-clé func suivi de paramètres de type entre crochets. Les paramètres de type spécifient les types acceptés par la fonction générique. Par exemple :

func Print[T any](s []T) {
    for _, v := range s {
        fmt.Print(v)
    }
}
Copier après la connexion

Dans cet exemple, T est un paramètre de type qui peut représenter n'importe quel type. La fonction Print accepte une tranche de type []T et imprime les éléments de la tranche.

Pour utiliser la fonction générique, vous pouvez passer en argument une tranche du type souhaité :

// Passing a list of strings
Print([]string{"Hello, ", "world\n"})

// Passing a list of integers
Print([]int{1, 2})
Copier après la connexion

Le résultat du programme sera :

Hello, world
12
Copier après la connexion

Les fonctions génériques fournissent un moyen concis et sûr d'écrire du code pouvant fonctionner sur différents types sans sacrifier le type. sécurité.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal