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

Bagaimanakah Saya Boleh Menyimpan Fungsi sebagai Nilai dalam Peta Go?

DDD
DDDasal
2024-12-14 02:50:10175semak imbas

How Can I Store Functions as Values in a Go Map?

Menyimpan Fungsi dalam Peta Go

Dalam Go, peta ialah jenis yang menyimpan pasangan nilai kunci. Kunci dan nilai boleh terdiri daripada sebarang jenis. Dalam kes anda, anda ingin menyimpan fungsi dalam peta. Walau bagaimanapun, kod anda tidak berfungsi kerana jenis fungsi tidak boleh digunakan sebagai kunci dalam peta.

Untuk mengatasinya, anda boleh menggunakan jenis antara muka untuk mewakili fungsi. Jenis antara muka mentakrifkan satu set kaedah yang mesti dilaksanakan oleh jenis untuk memenuhi antara muka. Dalam kes ini, anda boleh mencipta jenis antara muka yang mewakili fungsi yang mengambil rentetan sebagai parameter.

import "fmt"

// A function type that takes a string as a parameter.
type StringFunc func(string)

// A map that stores functions that take a string as a parameter.
var funcs map[string]StringFunc

// A function that takes a string as a parameter.
func a(p string) {
    fmt.Println("function a parameter:", p)
}

// Main function.
func main() {
    // Create a map that stores functions that take a string as a parameter.
    funcs = make(map[string]StringFunc)

    // Add the 'a' function to the map.
    funcs["a"] = a

    // Call the 'a' function from the map.
    funcs["a"]("hello")
}

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

Kenyataan:
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