2017-07-07 30 views
-1

是否使用字符串作为函数名称并调用它的方法?使用字符串作为函数名称 - golang

我有地图字符串的函数名
stuff := map[string]string{'keyword','function'}

和使用keyword的时候,我想打电话给function以2个参数
stuff['keyword'](arg1,arg2)

但它给我这个错误:

cannot call non-function key (type string) 

有没有办法让我的stringstring地图,仍然实现这一目标?

+0

您可能需要[函数变量](https://stackoverflow.com/questions/3601796/can-we-have-function-pointers-in-google-go),而不是函数_names_。 – mustaccio

+2

[Golang:从字符串(函数的名称)指向函数的指针](https://stackoverflow.com/questions/18017979/golang-pointer-to-function-from-string-functions-name) – eugenioy

回答

0

您使用的地图在语法上不是有效的。你可能想是这样的:

stuff := map[string]func(string, string) 

你会然后就可以使用您的字符串键从地图上拉出一个函数,并调用它:

stuff["keyword"]("foo", "goo") 

GoPlay:
https://play.golang.org/p/DNALJOmoiZ

相关问题