Fungsi Generik dalam Go
Jenis antara muka dalam Go boleh menyimpan sebarang jenis tanpa memerlukan sebarang kaedah yang dilaksanakan, mewujudkan tanggapan bahawa ia berfungsi sebagai bentuk fungsi generik. Walau bagaimanapun, ini tidak berlaku. Fungsi generik sebenar, yang jenisnya tidak diketahui pada masa penyusunan, tidak disokong dalam Go sebelum versi 1.18.
Dalam Go 1.18, generik telah diperkenalkan, membolehkan penciptaan fungsi generik. Fungsi generik boleh ditakrifkan menggunakan kata kunci func diikuti oleh parameter jenis yang disertakan dalam kurungan segi empat sama. Parameter jenis menentukan jenis yang diterima oleh fungsi generik. Contohnya:
func Print[T any](s []T) { for _, v := range s { fmt.Print(v) } }
Dalam contoh ini, T ialah parameter jenis yang boleh mewakili sebarang jenis. Fungsi Print menerima hirisan jenis []T dan mencetak elemen hirisan.
Untuk menggunakan fungsi generik, anda boleh menghantar hirisan jenis yang diingini sebagai hujah:
// Passing a list of strings Print([]string{"Hello, ", "world\n"}) // Passing a list of integers Print([]int{1, 2})
Output program ialah:
Hello, world 12
Fungsi generik menyediakan cara ringkas dan selamat untuk menulis kod yang boleh beroperasi pada jenis yang berbeza tanpa mengorbankan keselamatan jenis.
Atas ialah kandungan terperinci Bagaimanakah Generik Mendayakan Fungsi Generik Benar dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!