Fungsi pemetaan kepada kunci rentetan boleh menjadi alat yang berguna untuk mengatur dan memilih kaedah dalam Go. Walau bagaimanapun, halangan biasa ialah memastikan sintaks dan penaipan yang betul. Mari kita terokai cara untuk mentakrif dan menggunakan peta fungsi dengan berkesan dalam Go.
Kod yang disediakan cuba membuat peta dengan kunci rentetan yang menghala ke fungsi. Walau bagaimanapun, sintaks yang digunakan dalam m := map[string] func {...} adalah tidak betul. Untuk mentakrifkan peta penunjuk fungsi, sintaks yang betul ialah m := map[string]interface{}{...}.
Tambahan pula, penggunaan petikan tunggal '' untuk kekunci peta adalah tidak sah. Petikan berganda "" hendaklah digunakan untuk kekunci rentetan.
Untuk menunjukkan contoh yang berfungsi, pertimbangkan kod berikut:
package main import "fmt" func f(p string) { fmt.Println("function f parameter:", p) } func g(p string, q int) { fmt.Println("function g parameters:", p, q) } func main() { m := map[string]interface{}{ "f": f, "g": g, } for k, v := range m { switch k { case "f": v.(func(string))("astring") case "g": v.(func(string, int))("astring", 42) } } }
Di sini, peta m dibuat, di mana setiap kekunci ialah rentetan, dan nilai yang sepadan ialah penunjuk fungsi. Pernyataan suis menyemak kekunci dan menghantar nilai kepada jenis fungsi yang sesuai sebelum memanggil fungsi dengan parameter yang dikehendaki. Pendekatan ini membolehkan pemilihan dan pelaksanaan fungsi dinamik berdasarkan kekunci yang disediakan.
Atas ialah kandungan terperinci Bagaimana untuk Mentakrifkan dan Menggunakan Peta Fungsi dengan betul dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!