Penunjuk fungsi ialah pembolehubah dalam Go yang menghala ke alamat memori fungsi, membenarkan fungsi diproses seperti jenis nilai. Apabila diluluskan sebagai parameter, ia memberikan tingkah laku dinamik: Tentukan jenis penunjuk fungsi: func(*NamaJenis)Jenis Pengembalian Lulus penuding fungsi sebagai parameter kepada fungsi untuk melaksanakan fungsi yang berbeza berdasarkan penunjuk fungsi (contohnya, mengisih melalui fungsi perbandingan )
Melepasi penunjuk fungsi sebagai parameter dalam Go
Memahami penunjuk fungsi
Dalam Go, penunjuk fungsi ialah pembolehubah yang menunjuk ke fungsi. Ia pada asasnya adalah penunjuk kepada alamat memori fungsi. Penunjuk fungsi membolehkan kami merawat fungsi sama seperti jenis nilai lain.
Sintaks penunjuk fungsi
Jenis penuding fungsi ditakrifkan oleh sintaks berikut:
func(*TypeName)ReturnType
Sebagai contoh, kod berikut mentakrifkan penunjuk kepada fungsi yang menerima parameter int dan mengembalikan nilai int:
type fnType func(int) int
Penunjuk fungsi Sebagai parameter
Penunjuk fungsi boleh dihantar sebagai parameter fungsi lain. Ini membolehkan kami menyediakan gelagat yang berbeza untuk berfungsi secara dinamik.
Kes Praktikal: Fungsi Isih
Pertimbangkan senario di mana satu set integer perlu diisih. Kita boleh mentakrifkan fungsi yang dipanggil sortInts
yang menerima kepingan integer dan penunjuk fungsi sebagai argumen. Penunjuk fungsi akan menentukan fungsi yang digunakan untuk membandingkan dan mengisih integer. sortInts
的函数,该函数接受一个整数切片和一个函数指针作为参数。函数指针将指定用于比较和排序整数的函数。
func sortInts(nums []int, compareFn fnType) { // 根据 compareFn 函数排序 nums }
我们可以在 main 函数中调用 sortInts
func main() { nums := []int{5, 2, 8, 3, 1} // 升序排序 sortInts(nums, func(a, b int) int { return a - b }) fmt.Println(nums) // [1 2 3 5 8] // 降序排序 sortInts(nums, func(a, b int) int { return b - a }) fmt.Println(nums) // [8 5 3 2 1] }
sortInts
dalam fungsi utama dan lulus dalam fungsi perbandingan yang berbeza untuk mengisih hirisan integer secara berbeza. rrreeeKesimpulan
Penunjuk fungsi ialah alat berkuasa dalam Go yang membolehkan kami mencipta kod dinamik dan boleh digunakan semula. Dengan memahami sintaks penunjuk fungsi dan mekanisme menghantar penunjuk fungsi sebagai hujah, kita boleh dengan mudah melaksanakan tingkah laku dan algoritma yang kompleks. 🎜Atas ialah kandungan terperinci penunjuk fungsi golang diluluskan sebagai parameter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!