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

标签 xml go

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

最佳答案

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

type Foo struct{}

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

...

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

在其中反射(reflect)方法所在的结构,然后获取方法的接口(interface)值并将其类型断言返回到它的 func 签名。

可运行示例: https://play.golang.org/p/m2nywmeD0Y

关于xml - 如何将字符串转换为函数名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44309453/

相关文章:

function - Golang 函数指针作为结构的一部分

html - 在 lang 属性中指示未列出或虚构的语言

java - 一组用于两个相同命名空间的 JAXB 类

java - Jsoup 匹配任何具有命名空间的元素

google-app-engine - 通过 yaml 规则限制登录用户访问 google app engine app 中的静态文件失败

go - Revel 中不同的 Action 使用相同的模板

java - 获取 persistence.xml 中定义的所有可用持久单元名称

c# - 无法从 XML 反序列化

matrix - 使用biogo计算矩阵逆?

linux - 在 Golang 中,如何使用 SIGTERM 而不是 SIGKILL 终止 os.exec.Cmd 进程?