在 Go Map 中存储函数
在 Go 中,map 是一种存储键值对的类型。键和值可以是任何类型。就您而言,您希望将函数存储在地图中。但是,您的代码不起作用,因为函数类型不能用作映射中的键。
要解决此问题,您可以使用接口类型来表示函数。接口类型定义了类型必须实现以满足接口的一组方法。在这种情况下,您可以创建一个接口类型来表示一个以字符串作为参数的函数。
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") }
以上是如何将函数作为值存储在 Go Map 中?的详细内容。更多信息请关注PHP中文网其他相关文章!