Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Ungkapan Kaedah Mendayakan Kaedah Melepasi sebagai Argumen dalam Go?
Ungkapan Kaedah dalam Go
Ungkapan kaedah dalam Go membolehkan anda memanggil kaedah dengan objek tersuai sebagai hujah pertama. Ini boleh berguna apabila anda perlu menghantar tindakan tertentu kepada fungsi.
Memahami Coretan Kod
Pertimbangkan kod Go berikut:
func main() { dog := Dog{} b := (*Dog).Bark // method expression b(&dog, 5) } type Dog struct {} func (d *Dog) Bark(n int) { for i := 0; i < n; i++ { fmt.Println("Bark") } }
Dalam contoh ini, ungkapan kaedah digunakan untuk menetapkan fungsi kepada pembolehubah b. Ungkapan kaedah (*Anjing).Bark mengaitkan kaedah Bark jenis Anjing dengan penerima penunjuk (*Anjing).
Apabila b dipanggil, kaedah Bark digunakan dengan objek anjing sebagai hujah pertama dan 5 sebagai hujah kedua. Kaedah mencetak "Bark" pada konsol lima kali.
Kelebihan Ungkapan Kaedah
Contoh Penggunaan
Ekspresi kaedah boleh digunakan dalam pelbagai situasi. Sebagai contoh, anda boleh mentakrifkan fungsi pembantu yang mengambil ungkapan kaedah dan objek, kemudian melakukan tindakan berdasarkan kaedah:
func DoAction(f func(*Dog, int), d *Dog, n int) { f(d, n) } ... func main() { var b func(*Dog, int) if (shouldBark) { b = (*Dog).Bark } else { b = (*Dog).Sit } d := Dog{} DoAction(b, &d, 3) }
Atas ialah kandungan terperinci Bagaimanakah Ungkapan Kaedah Mendayakan Kaedah Melepasi sebagai Argumen dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!