我是输入安全的新手,不知道如何执行以下操作
package main
func test(){
print("In Test")
}
func main(){
a := "test"
a()
}
最佳答案
如果您陈述您想要实现的目标,您可能会得到更好的答案,因为反射(reflection)通常不是最好的方法。但是reflect如果函数是类型上的方法( net/rpc 是 example of this ),将会有所帮助。
package main
import (
"fmt"
"reflect"
)
type T struct {}
func (T) Add(x, y int) int {
return x + y
}
func main() {
t := reflect.ValueOf(T{})
m := t.MethodByName("Add")
args := []reflect.Value{reflect.ValueOf(1), reflect.ValueOf(2)}
fmt.Println(m.Call(args)[0].Int())
}
如果您想知道 godoc 这样的工具工作,他们解析源代码而不是使用反射。
关于Go:按名称查找函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127585/