Generics in Go vous permet de créer du code qui fonctionne avec plusieurs types de données. La syntaxe est de type name[T any] struct { ... }, où T est un paramètre générique. Un exemple de copie d'une tranche est présenté à l'aide de la fonction func CopySlice[T any](dst, src []T). Les avantages des génériques incluent la réutilisation du code, moins de conversions de types et la sécurité des types.
Extension des fonctionnalités du langage à l'aide de génériques dans Go
Generics est une fonctionnalité du langage de programmation qui vous permet de créer du code qui fonctionne avec différents types de données. Dans Go 1.18 et versions ultérieures, les génériques sont pris en charge. Cet article vous montrera comment utiliser les génériques pour ajouter de nouvelles fonctionnalités au langage Go.
Syntaxe
Le type générique est défini comme suit :
type name[T any] struct { // ... }
Où :
name
: Nom du type name
:类型名称T any
:泛型类型参数实战案例
让我们以创建一个具有复制任意类型切片的泛型函数为例:
func CopySlice[T any](dst, src []T) { n := len(src) if cap(dst) < n { dst = make([]T, n) } copy(dst, src) }
在这个函数中:
[T any]
表示函数接受任意类型数据的切片copy(dst, src)
复制 src
切片中的元素到 dst
切片使用方法
现在您可以使用我们创建的 CopySlice
T any
: Paramètres de type génériqueCas pratique
intSlice := []int{1, 2, 3} floatSlice := []float64{1.1, 2.2, 3.3} newIntSlice := make([]int, len(intSlice)) CopySlice(newIntSlice, intSlice) newFloatSlice := make([]float64, len(floatSlice)) CopySlice(newFloatSlice, floatSlice)
[T any]
signifie que la fonction accepte n'importe quel type de tranche de donnéescopy(dst, src)
Copiez les éléments de la tranche src
dans dst
Slice Vous pouvez maintenant utiliser la fonction CopySlice
que nous avons créée : rrreee
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!