Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menetapkan dan Memanggil Fungsi sebagai Nilai dalam Peta Go?

Bagaimanakah Saya Boleh Menetapkan dan Memanggil Fungsi sebagai Nilai dalam Peta Go?

Susan Sarandon
Lepaskan: 2024-12-09 18:34:15
asal
796 orang telah melayarinya

How Can I Assign and Call Functions as Values in a Go Map?

Menetapkan Fungsi kepada Kekunci dalam Peta Go

Dalam Go, anda boleh mentakrifkan fungsi tersuai dan menetapkannya sebagai nilai kepada kekunci dalam peta. Ini membolehkan pelaksanaan dinamik fungsi berdasarkan kunci yang diberikan.

Untuk mencapai ini, anda boleh mencipta peta jenis map[string]func(...) dengan kunci ialah rentetan dan nilainya ialah sesuatu fungsi. Walau bagaimanapun, kod yang disediakan cuba menggunakan sintaks yang tidak disokong dalam Go.

Untuk membetulkannya, gunakan kod berikut:

func a(param string) {
    fmt.Println("Function a called with param:", param)
}

func main() {
    m := map[string]func(string) {
        "a_func": a,
    }

    for key, value := range m {
        if key == "a_func" {
            value("test")
        }
    }
}
Salin selepas log masuk

Dalam contoh ini:

  • Peta[rentetan]func(rentetan) mengisytiharkan peta dengan kekunci rentetan dan fungsi yang mengambil argumen rentetan tunggal.
  • Pembolehubah m memulakan peta dengan kekunci "a_func" dan nilai yang merujuk kepada fungsi a.
  • Gelung julat berulang di atas peta, memanggil fungsi yang dikaitkan dengan kekunci "a_func" dan menghantar " test" sebagai hujah.

Perhatikan bahawa antara muka{} menaip dalam contoh kod yang disediakan tidak perlu dan boleh dipermudahkan kepada func(...).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan dan Memanggil Fungsi sebagai Nilai dalam Peta Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan