一尘不染

如何列出接口类型中的方法名称?

go

例如,

type FooService interface {
    Foo1(x int) int
    Foo2(x string) string
}

我正在尝试["Foo1", "Foo2"]使用运行时反射获取列表。


阅读 255

收藏
2020-07-02

共1个答案

一尘不染

试试这个:

t := reflect.TypeOf((*FooService)(nil)).Elem()
var s []string
for i := 0; i < t.NumMethod(); i++ {
    s = append(s, t.Method(i).Name)
}

游乐场的例子

获取接口类型的reflect.Type是棘手的部分。请参阅如何获取接口的reflect.Type?进行解释。

2020-07-02