penunjuk fungsi golang diluluskan sebagai parameter

WBOY
Lepaskan: 2024-04-22 14:18:01
asal
922 orang telah melayarinya

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 )

penunjuk fungsi golang diluluskan sebagai parameter

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
Salin selepas log masuk

Sebagai contoh, kod berikut mentakrifkan penunjuk kepada fungsi yang menerima parameter int dan mengembalikan nilai int:

type fnType func(int) int
Salin selepas log masuk

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
}
Salin selepas log masuk

我们可以在 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]
}
Salin selepas log masuk
Kita boleh memanggil 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan