Создать карту с функциями в Голанге

У меня есть массив строк, которые могут быть сгенерированы с разным количеством элементов. И я хотел бы сделать карту, где каждая строка из этого массива будет связана с определенной функцией. Теоретически, это может выглядеть как этот пример, но этот код, конечно, не работает:

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 ответов

Другие вопросы по тегам