您可以使用
reflect包列出类型的方法。例如:
fooType := reflect.TypeOf(Foo{})for i := 0; i < fooType.NumMethod(); i++ { method := fooType.Method(i) fmt.Println(method.Name)}您可以在此处进行操作:http :
//play.golang.org/p/wNuwVJM6vr
考虑到这一点,如果您想检查类型是否实现了某个方法集,则可能会发现使用接口和类型断言更加容易。例如:
func implementsBar(v interface{}) bool { type Barer interface { Bar() string } _, ok := v.(Barer) return ok}...fmt.Println("Foo implements the Bar method:", implementsBar(Foo{}))或者,如果您只是想让某个特定类型具有方法的编译时断言等于什么,则可以在以下位置简单地包含以下内容:
var _ Barer = Foo{}


