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 中国語 Web サイトの他の関連記事を参照してください。