從介面取得方法名稱清單
在 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中文網其他相關文章!