使用运行时反射列出接口类型中的方法名称
在 Go 中,接口定义方法签名的契约。然而,在运行时获取接口内的方法名称可能具有挑战性。本文解决了这个问题,探索了一种使用反射列出方法名称的方法。
问题:
考虑以下接口类型:
<code class="go">type FooService interface { Foo1(x int) int Foo2(x string) string }</code>
目标是使用运行时反射动态获取 ["Foo1", "Foo2"] 等方法名称列表。
解决方案:
检索方法名称,我们可以使用以下步骤:
这是代码实现:
<code class="go">t := reflect.TypeOf((*FooService)(nil)).Elem() var s []string for i := 0; i < t.NumMethod(); i++ { s = append(s, t.Method(i).Name) }</code>
通过利用提供的解决方案,您可以为 Go 中的任何给定接口类型动态生成方法名称列表节目。
以上是如何使用反射列出 Go 接口类型中的方法名称?的详细内容。更多信息请关注PHP中文网其他相关文章!