Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mendapat Fungsi Go Secara Dinamik Menggunakan Nama Rentetan?
Menyebut Fungsi Secara Dinamik Menggunakan Nama Rentetan dalam Go
Dalam Go, fungsi menduduki kedudukan kelas pertama, menghapuskan keperluan untuk teknik litar yang digunakan dalam bahasa dinamik. Ini membolehkan fungsi dihantar sebagai parameter kepada fungsi lain, dengan berkesan mendayakan keupayaan pengaturcaraan meta.
Sebagai contoh, katakan anda ingin menghantar fungsi sebagai hujah kepada fungsi lain. Berikut ialah kod yang boleh anda gunakan untuk mencapai ini:
package main import "fmt" func someFunction1(a, b int) int { return a + b } func someFunction2(a, b int) int { return a - b } func someOtherFunction(a, b int, f func(int, int) int) int { return f(a, b) } func main() { fmt.Println(someOtherFunction(111, 12, someFunction1)) fmt.Println(someOtherFunction(111, 12, someFunction2)) }
Menjalankan kod ini akan menghasilkan output berikut:
123 99
Selain itu, jika pemilihan fungsi dipengaruhi oleh masa jalan sahaja nilai yang diketahui, peta boleh digunakan:
m := map[string]func(int, int) int { "someFunction1": someFunction1, "someFunction2": someFunction2, } ... z := someOtherFunction(x, y, m[key])
Atas ialah kandungan terperinci Bagaimana untuk Mendapat Fungsi Go Secara Dinamik Menggunakan Nama Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!