duanbi8089 2016-03-16 04:23 采纳率: 100%
浏览 5

是否可以通过反射来获得函数名称? [重复]

This question already has an answer here:

Is it possible to get the function name with reflect like this?

I am a new golang programmer,I don't know how to solve it.

The code following:

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
", runtime.FuncForPC(method.Pointer()).Name(), t.NumIn(), t.NumOut())
        }
    }
}
</div>
  • 写回答

1条回答 默认 最新

  • douchao1879 2016-03-16 04:47
    关注

    Thanks machiel.

    The answer following:

    t := reflect.TypeOf(new(A))
    for i := 0; i < t.NumMethod(); i++ {
        method := t.Method(i)
        fmt.Println(method.Name)
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口