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
Lepaskan: 2024-12-14 02:50:10
asal
173 orang telah melayarinya

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")
}
Salin selepas log masuk

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!

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