Fungsi Generik dalam Go: Panduan Komprehensif
Semasa meneroka Go, anda mungkin menghadapi konsep antara muka kosong. Ia merupakan alat berkuasa yang boleh memuatkan sebarang jenis, tidak memerlukan kaedah tambahan.
Pertimbangkan contoh ini:
func describe(i interface{}) { fmt.Printf("Type: %T | Value: %v\n", i, i) }
Apabila anda menghantar jenis yang berbeza untuk diterangkan, ia mencetak jenis dan nilai:
"Type: int | Value: 5" // for i := 5 "Type: string | Value: test" // for i := "test"
Jadi, adakah ini cara Go untuk melaksanakan fungsi generik? Tidak cukup. Bermula dengan Go 1.18, anda kini boleh menulis fungsi generik sebenar. Berikut ialah contoh:
package main import ( "fmt" ) // T can be any type func Print[T any](s []T) { for _, v := range s { fmt.Print(v) } } func main() { // Passing list of string works Print([]string{"Hello, ", "world\n"}) // You can pass a list of int to the same function as well Print([]int{1, 2}) }
Output:
Hello, world 12
Fungsi generik Cetakan ini boleh mengendalikan kepingan apa-apa jenis, menawarkan pendekatan yang lebih serba boleh dan selamat jenis kepada pengaturcaraan generik.
Atas ialah kandungan terperinci Adakah Antara Muka Kosong Go atau Go 1.18 Generik adalah Pelaksanaan Sebenar Fungsi Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!