Ciri Generik membolehkan bahasa Go menulis kod umum yang boleh digunakan pada berbilang jenis data. Ia dilaksanakan dengan menggunakan pembolehubah jenis generik, seperti jenis MyType[T any], di mana T menentukan jenis elemen. Generik memberikan kelebihan berikut: Kebolehgunaan semula kod: Kod generik boleh digunakan pada pelbagai jenis secara serentak tanpa perlu menulis kod khusus jenis. Kod yang lebih fleksibel: boleh menyesuaikan diri dengan jenis input yang berbeza, memudahkan penulisan kod untuk pelbagai senario. Keselamatan jenis: Pemeriksaan jenis masa kompilasi memastikan keserasian dan menghalang ralat berkaitan jenis.
Cara menggunakan generik untuk menulis kod bahasa Go yang lebih umum
Generik ialah ciri penting yang diperkenalkan baru-baru ini dalam bahasa Go, yang membolehkan kami menulis kod yang lebih fleksibel dan boleh digunakan semula. Dengan menggunakan generik, kita boleh menulis kod untuk berfungsi untuk jenis data yang berbeza tanpa perlu menulis kod berasingan untuk setiap jenis.
Untuk menggunakan generik, kita perlu menggunakan kurungan segi empat sama [ ]
untuk mengisytiharkan pembolehubah jenis generik. Contohnya: [ ]
声明泛型类型变量。例如:
type MyType[T any] struct { data []T }
在上面示例中,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 }
在这个例子中,Sort
rrreee
MyType
ialah jenis generik yang boleh menerima sebarang jenis elemen dan jenisnya ditentukan oleh T
. Kes praktikal: Senarai disusunBerikut ialah kes praktikal mengisih senarai yang ditulis menggunakan generik:Isih
ialah fungsi generik yang boleh digunakan untuk mana-mana jenis Senarai disusun. Ia menerima dua parameter: senarai dan fungsi perbandingan untuk membandingkan elemen dalam senarai. Nilai pulangan ialah senarai diisih. Kelebihan GenerikAtas ialah kandungan terperinci Cara menggunakan generik untuk menulis kod golang yang lebih umum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!