如何将字符串转换为函数名称

时间:2017-06-01 13:52:24

标签: xml go

我需要从XML文件中读取数据并将其转换为golang中的函数。因为在golang中我需要在mux.NewRouter()。HandleFunc(“/ url”,functionName)中使用此函数。我需要一种方法将从XML文件读取的字符串转换为函数名称以用作functionName。

1 个答案:

答案 0 :(得分:0)

如果您在一个类型上注册了要作为方法调用的所有函数,那么您可以执行以下操作。

type Foo struct{}

func (Foo) Bar() {
    fmt.Println("foobar")
}

...

f := reflect.ValueOf(Foo{}).MethodByName("Bar").Interface().(func())
f()

如果您反映方法所在的结构,然后获取方法的接口值,并将类型断言回到它的func签名。

Runnable示例: https://play.golang.org/p/m2nywmeD0Y