Go amalan terbaik generik: gunakan huruf tunggal kecil apabila menentukan parameter jenis, gunakan pengisytiharan jenis dan gunakan pengisytiharan kurungan sudut dalam tandatangan kaedah. Elakkan generalisasi yang berlebihan dan hanya membuat generalisasi apabila perlu. Gunakan kekangan jenis untuk memastikan keselamatan jenis. Gunakan antara muka kosong (~antara muka{}) dengan berhati-hati untuk mengelakkan pengorbanan keselamatan jenis. Gunakan alias jenis untuk meningkatkan kebolehbacaan dan kebolehselenggaraan.
Go Generics ialah ciri hebat yang membolehkan anda menulis kod yang boleh digunakan semula dan selamat taip. Panduan ini akan memberikan beberapa amalan terbaik dan nasihat untuk membantu anda memanfaatkan sepenuhnya Go generik.
Apabila menentukan parameter jenis, ikut peraturan ini:
Contoh:
type MyList[T any] []T
Generik, walaupun berkuasa, juga boleh membawa kepada overgeneralization. Hanya generalize apabila benar-benar diperlukan. Pertimbangkan contoh berikut:
// 错误:过度泛化 func Sort[T any](s []T) // 正确:只泛化排序元素 func SortInts(s []int) func SortStrings(s []string)
Kekangan jenis membolehkan anda menentukan syarat yang mesti dipenuhi oleh parameter jenis. Ini membantu memastikan kod generik anda selamat jenis.
type Number interface { ~int | ~int32 | ~int64 | ~float32 | ~float64 } func Sum[T Number](s []T) T
Antara muka kosong (~antara muka{}) sangat fleksibel, tetapi ia mengorbankan keselamatan jenis. Hanya gunakan antara muka kosong apabila benar-benar perlu.
Alias jenis membolehkan anda membuat alias tersuai untuk parameter jenis. Ini meningkatkan kebolehbacaan dan kebolehselenggaraan.
type IntList = MyList[int]
Pertimbangkan fungsi pengisihan senarai berikut menggunakan generik:
import "sort" // MyList 定义一个泛型列表类型 type MyList[T any] []T // Sort 对列表进行排序 func (l MyList[T]) Sort() { sort.Slice(l, func(i, j int) bool { return l[i] < l[j] }) }
Dalam kes ini, parameter jenis T
被定义为 any
, yang bermaksud fungsi itu boleh mengisih senarai nilai apa-apa jenis.
Menggunakan generik Go membolehkan anda menulis kod yang lebih boleh digunakan semula dan selamat taip. Dengan mengikuti amalan dan pengesyoran terbaik ini, anda boleh memanfaatkan sepenuhnya fungsi generik.
Atas ialah kandungan terperinci Amalan dan cadangan terbaik untuk generik golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!