我想要获取所有能够导出的函数的函数名.
比如
funs := reflect.AllFunction()
for _,fun := each funcs {
fmt.printf(reflect.value(fun).Type.Name)
}
有疑问加站长微信联系(非本文作者)
我想要获取所有能够导出的函数的函数名.
比如
funs := reflect.AllFunction()
for _,fun := each funcs {
fmt.printf(reflect.value(fun).Type.Name)
}
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
我猜你应该没弄清楚编译期和运行期的区别。 你要找的函数是编译期的概念,反射是运行时的概念,它只能处理打包在二进制里地符号。 你大概也不希望只用了一个函数结果把所有函数都编译进二进制吧。(官方团队为了减小二进制体积创建了几乎永不关闭的issue,长期持续地改进标准库地依赖关系) 所以你需要的是go/token、go/types那些东西而不是reflect。如果想偷懒,可以参考cmd/doc。