【发布时间】:2020-12-23 04:12:23
【问题描述】:
我有很多这样的结构,有不同的字段,但有共同的字段:fn func()
type a struct{
// ....
fn func()
}
我要的是调用diff structs'实例的fn函数,如何实现;不用receiver func实现,fn没有导出
func call(i interface{}){
// TODO
// how to use reflect to call fn func
}
【问题讨论】:
-
如果你有很多不同的结构包含相同签名的函数,也许你应该将这些函数重构为方法,然后创建一个捕获行为的接口。那么你根本不需要反思。请记住,空界面不携带任何信息。