从接口获取方法名称列表
在 Go 中,反射允许在运行时检查和操作程序的内部结构。这包括访问有关接口类型的信息的能力,例如其方法名称。
考虑以下接口:
<code class="go">type FooService interface { Foo1(x int) int Foo2(x string) string }</code>
使用以下方法获取此接口的方法名称列表反射:
<code class="go">t := reflect.TypeOf((*FooService)(nil)).Elem()</code>
此行检索具体类型的reflect.Type实现 FooService 接口。
<code class="go">for i := 0; i < t.NumMethod(); i++ {</code>
NumMethod() 函数返回以下方法的数量
<code class="go">s = append(s, t.Method(i).Name)</code>
Method(i) 函数返回一个代表该方法的reflect.Method 对象在索引 i 处。该对象的 Name 字段包含方法的名称。
结果列表将包含方法名称 ["Foo1", "Foo2"]。
说明:
以上是如何使用反射从 Go 接口中检索方法名称列表?的详细内容。更多信息请关注PHP中文网其他相关文章!