使用Golang函数生成地图

时间:2019-01-15 07:34:20

标签: go reflect

我有一个字符串数组,可以用不同数量的元素生成。我想制作一个映射,其中该数组中的每个字符串都将与特定功能相关联。 从理论上讲,它可能看起来像以下示例,但是该代码当然不起作用:

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软件包,但是还没有找到如何将假定函数的名称(字符串)转换为函数本身的方法。

0 个答案:

没有答案