首页 > 后端开发 > Golang > 如何将函数作为值存储在 Go Map 中?

如何将函数作为值存储在 Go Map 中?

DDD
发布: 2024-12-14 02:50:10
原创
174 人浏览过

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

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板