Создать карту с функциями в Голанге
У меня есть массив строк, которые могут быть сгенерированы с разным количеством элементов. И я хотел бы сделать карту, где каждая строка из этого массива будет связана с определенной функцией. Теоретически, это может выглядеть как этот пример, но этот код, конечно, не работает:
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
пакет, но не нашли способ, как преобразовать имя предполагаемой функции (которая является строкой) в саму функцию.