首页 >后端开发 >Golang >如何在 Go Map 中将函数作为值进行赋值和调用?

如何在 Go Map 中将函数作为值进行赋值和调用?

Susan Sarandon
Susan Sarandon原创
2024-12-09 18:34:15778浏览

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

为 Go 映射中的键分配函数

在 Go 中,您可以定义自定义函数并将它们作为值分配给映射中的键。这允许基于给定键动态执行函数。

要实现此目的,您可以创建一个类型为 map[string]func(...) 的映射,其中键是字符串,值为一个函数。但是,提供的代码尝试使用 Go 不支持的语法。

要解决此问题,请使用以下代码:

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")
        }
    }
}

在此示例中:

  • map[string]func(string) 声明一个带有字符串键和接受单个字符串参数的函数的映射。
  • m 变量使用键“a_func”和对 a 函数的引用的值初始化映射。
  • 范围循环迭代映射,调用与“a_func”键关联的函数并传递“

请注意,所提供的代码示例中的 interface{} 类型不是必需的,可以简化为func(...).

以上是如何在 Go Map 中将函数作为值进行赋值和调用?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn