首页 > 解决方案 > 在 Golang 中使用函数生成地图

问题描述

我有一个字符串数组,可以用不同数量的元素生成。而且我想制作一个地图,该数组中的每个字符串都将与特定函数相关联。理论上,它可能看起来像这个例子,但这段代码当然不起作用:

package main

import "fmt"
import "strings"

var (
    Names []string {"foo", "bar", "baz"}
)

func main() {
    m := make(map[string]interface{})
    for _, name := range Names {
        fnname := strings.Title(name)
        // add function to the map
        m[name] = fnname
    }

    // exec functions store in the map
    for _, fn := range m {
        fn()
    }
}

func Foo() {
    fmt.Println("I'm foo")
}
func Bar() {
    fmt.Println("I'm bar")
}
func Baz() {
    fmt.Println("I'm baz")
}

我正在查看reflect包,但还没有找到如何将假定函数的名称(即字符串)转换为函数本身的方法。

标签: goreflect

解决方案


推荐阅读