Maison > développement back-end > Golang > le corps du texte

Comment utiliser des génériques pour écrire du code Golang plus général

王林
Libérer: 2024-05-03 21:12:02
original
1036 Les gens l'ont consulté

La fonctionnalité Generics permet au langage Go d'écrire du code général pouvant être appliqué à plusieurs types de données. Il est implémenté en utilisant une variable de type générique, telle que le type MyType[T any], où T spécifie le type d'élément. Les génériques offrent les avantages suivants : Réutilisabilité du code : le code générique peut être appliqué simultanément à différents types sans qu'il soit nécessaire d'écrire du code spécifique au type. Code plus flexible : peut s'adapter à différents types d'entrée, simplifiant ainsi l'écriture de code pour une variété de scénarios. Sécurité du type : la vérification du type au moment de la compilation garantit la compatibilité et évite les erreurs liées au type.

Comment utiliser des génériques pour écrire du code Golang plus général

Comment utiliser des génériques pour écrire du code plus général en langage Go

Les génériques sont une fonctionnalité importante récemment introduite dans le langage Go, qui nous permet d'écrire du code plus flexible et réutilisable. En utilisant des génériques, nous pouvons écrire du code pour fonctionner avec différents types de données sans avoir à écrire du code séparé pour chaque type.

Syntaxe de base des génériques

Pour utiliser des génériques, nous devons utiliser des crochets [ ] pour déclarer les variables de type générique. Par exemple : [ ] 声明泛型类型变量。例如:

type MyType[T any] struct {
    data []T
}
Copier après la connexion

在上面示例中,MyType 是一个泛型类型,可以接受任何类型的元素,类型由 T 指定。

实战案例:排序列表

下面是一个使用泛型编写的排序列表的实战案例:

// 功能:对列表进行排序
func Sort[T any](list []T, compare func(T, T) int) []T {
    // 拷贝列表
    result := make([]T, len(list))
    copy(result, list)

    // 使用内置的 Sort 包对其进行排序
    sort.Slice(result, func(i, j int) bool {
        return compare(result[i], result[j]) < 0
    })

    return result
}
Copier après la connexion

在这个例子中,Sortrrreee

Dans l'exemple ci-dessus, MyType est un type générique qui peut accepter des éléments de n'importe quel type, et le type est spécifié par T.

Cas pratique : Liste triée

Voici un cas pratique de tri d'une liste écrite à l'aide de génériques :
    rrreee
  • Dans cet exemple, la fonction Tri est une fonction générique qui peut être utilisée pour n'importe quel tapez La liste est triée. Il accepte deux paramètres : une liste et une fonction de comparaison pour comparer les éléments de la liste. La valeur de retour est une liste triée. Avantages des génériques
  • L'utilisation des génériques présente de nombreux avantages, notamment :
  • Réutilisabilité du code : Les génériques nous permettent d'écrire du code universel qui peut être appliqué à différents types de données à la fois. Cela élimine le besoin d’écrire du code en double spécifique au type, augmentant ainsi la réutilisabilité du code.
Code plus flexible : 🎜Les génériques rendent notre code plus flexible car il peut s'adapter à différents types d'entrée. Cela facilite l’écriture de code pouvant être utilisé dans divers scénarios. 🎜🎜🎜Sécurité des types : 🎜Les génériques appliquent la vérification des types au moment de la compilation, garantissant que les fonctions et les types génériques ne fonctionnent qu'avec des types compatibles. Cela permet d’éviter les erreurs liées au type lors de l’exécution. 🎜🎜

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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!