在 Go 中,介面定義了類型必須實作的方法契約。在運行時與介面互動時,您可能需要存取其方法的名稱。
問題:
考慮以下介面定義:
type FooService interface { Foo1(x int) int Foo2(x string) string }
如何以程式設計方式從FooService 介面產生方法名稱列表,即["Foo11 ", "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>
說明:
Playground 範例:
https://go.dev/play/p/6cXnZKiKiKV1
>
請參閱「如何取得介面的reflect.Type?」有關取得介面的Reflect.Type 的見解。以上是如何以程式設計方式列出 Go 介面中定義的方法名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!