我正在编写一个函数,它迭代给定结构上的方法并将方法绑定到处理程序。如果可能的话,我想跳过内部方法。我不确定是否可以显式地这样做-我查看了反映包的文档,我没有看到检测给定值是否为内部方法的方法。我知道我可以获得方法的名称,然后检查它是否以小写字符开头,但我不确定是否有一种简单的方法来完成这一点。也有可能内部/公共边界实际上只存在于编译时,所以除了方法的名称之外,真的没有办法知道这一点。不管是哪种情况,我都想知道确切的情况。谢谢!
反射包不会通过Type.Method
给你未导出的方法。基本上,如果你能通过反射看到它,它就已经被导出了。
见https://play.golang.org/p/61qQYO38P0