是否可以像这样反映函数名称?
我是一名新的 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())
}
}
}
答案 0 :(得分:0)
谢谢马歇尔。
以下答案:
t := reflect.TypeOf(new(A))
for i := 0; i < t.NumMethod(); i++ {
method := t.Method(i)
fmt.Println(method.Name)
}