This question already has an answer here:
How to dump methods of structs in Golang?
(1个答案)
4年前关闭。
是否可以通过反射来获得函数名称?
我是一个新的 golang 程序员,我不知道如何解决。
以下代码:
(1个答案)
4年前关闭。
是否可以通过反射来获得函数名称?
我是一个新的 golang 程序员,我不知道如何解决。
以下代码:
type A struct {
Name string
}
func (this *A) Func1(name string) {
fmt.Println(name)
}
func (this *A) Func2(name string, value string) {
fmt.Println(name + ": " + value)
}
func main() {
a := new(A)
v := reflect.ValueOf(a)
for i := 0; i < v.NumMethod(); i++ {
method := v.Method(i)
if method.IsValid() {
t := reflect.TypeOf(method.Interface())
// how to echo the function name of A: Func1,Func2
fmt.Printf("%s %d %d\n", runtime.FuncForPC(method.Pointer()).Name(), t.NumIn(), t.NumOut())
}
}
}
最佳答案
感谢machiel。
答案如下:
t := reflect.TypeOf(new(A))
for i := 0; i < t.NumMethod(); i++ {
method := t.Method(i)
fmt.Println(method.Name)
}
关于go - 是否可以通过反射来获得函数名称? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36026753/
10-15 03:44