存取 Golang 中介面的方法集
確定介面中的方法對於各種場景都很有用。本文探討如何在 Golang 中有效地列印介面的方法集。
挑戰
給定以下介面:
<code class="go">type Searcher interface { Search(query string) (found bool, err error) ListSearches() []string ClearSearches() (err error) }</code>
如何我們可以在不事先了解實現該方法的具體類型的情況下打印這些方法的名稱(Search、ListSearches 和ClearSearches)嗎?接口?
解決方案
reflect 套件提供了在運行時檢查類型的方法。透過利用這個包,我們可以檢索介面的類型資訊並檢查其方法。
<code class="go">package main import ( "fmt" "reflect" ) type Searcher interface { Search(query string) (found bool, err error) ListSearches() []string ClearSearches() (err error) } func main() { t := reflect.TypeOf(struct{ Searcher }{}) for i := 0; i < t.NumMethod(); i++ { fmt.Println(t.Method(i).Name) } }</code>
此程式碼透過反映介面類型並迭代其方法以列印其名稱來實現我們的目標。
輸出
執行此程式將產生所需的結果輸出:
Search ListSearches ClearSearches
以上是Golang中如何列印介面的方法集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!