Generics in Go membolehkan anda membuat kod yang berfungsi dengan berbilang jenis data. Sintaks ialah type name[T any] struct { ... }, dengan T ialah parameter generik. Contoh menyalin kepingan ditunjukkan menggunakan fungsi CopySlice[T any](dst, src []T). Faedah generik termasuk penggunaan semula kod, lebih sedikit penukaran jenis dan keselamatan jenis.
Melanjutkan ciri bahasa menggunakan generik dalam Go
Generik ialah ciri bahasa pengaturcaraan yang membolehkan anda mencipta kod yang berfungsi dengan pelbagai jenis data. Dalam Go 1.18 dan lebih baru, generik disokong. Artikel ini akan menunjukkan kepada anda cara menggunakan generik untuk menambah ciri baharu pada bahasa Go. .
Kes praktikal
Mari kita ambil contoh mencipta fungsi generik yang menyalin kepingan mana-mana jenis:
type name[T any] struct { // ... }
Dalam fungsi ini:
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
copy(dst, src)
Salin elemen dalam hirisan src
ke dst
SlicePenggunaan kaedah
CopySlice
yang kami cipta: 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)
Penukaran jenis yang lebih sedikit:
Generik menghapuskan senario di mana penukaran jenis diperlukan. 🎜Keselamatan jenis: 🎜Pengkompil menyemak keselamatan jenis dalam kod generik untuk mengelakkan ralat jenis. 🎜🎜🎜🎜Kesimpulan🎜🎜🎜Menggunakan generik memudahkan untuk menambah ciri baharu pada bahasa Go. Dengan menyediakan parameter jenis generik, anda boleh membuat kod yang berfungsi merentas pelbagai jenis data, meningkatkan kebolehgunaan semula kod, keselamatan dan mengurangkan penukaran jenis. 🎜Atas ialah kandungan terperinci Cara menggunakan generik untuk menambah ciri baharu pada golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!