Penggunaan generik golang boleh digantikan dengan kaedah berikut: 1. Menggunakan antara muka dan menggunakan jenis antara muka sebagai parameter atau jenis pengembalian dalam fungsi atau kaedah, operasi abstrak pada jenis yang berbeza boleh dicapai; tools , menjana jenis kod tertentu untuk mencapai tingkah laku generik, tetapi kod templat perlu ditakrifkan terlebih dahulu, dan kod templat perlu ditukar kepada jenis kod tertentu melalui alat penjanaan.
Sistem pengendalian tutorial ini: sistem Windows 10, komputer Dell G3.
Penggunaan generik golang boleh digantikan dengan kaedah berikut:
type MyGeneric interface { DoSomething() } func ProcessGeneric(g MyGeneric) { // 对泛型进行处理 g.DoSomething() }
//go:generate go run gen.go func ProcessGeneric(g GenericType) { // 处理泛型 } // gen.go package main import ( "fmt" "os" "text/template" ) type GenericType int func main() { tmpl := template.Must(template.New("").Parse(` type GenericType {{.}} `)) types := []string{"int", "string", "float64"} for _, t := range types { f, err := os.Create(fmt.Sprintf("generic_%s.go", t)) if err != nil { fmt.Println(err) continue } defer f.Close() tmpl.Execute(f, t) } }
Dalam contoh ini, kami mencipta templat jenis GenericType dan menggunakan alat penjanaan kod untuk menjana fail kod tertentu berdasarkan jenis yang berbeza (int, string, float64).
Perlu diingat bahawa kaedah di atas adalah penyelesaian kompromi dan bukan pelaksanaan generik yang disokong secara rasmi. Pasukan bahasa Go sedang dalam proses membangunkan generik dan mungkin melancarkan sokongan generik rasmi pada masa hadapan.
Atas ialah kandungan terperinci Cara menggunakan generik golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!