使用運行時反射列出介面類型中的方法名稱
在 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中文網其他相關文章!