ランタイム リフレクションを使用したインターフェイス型のメソッド名のリスト
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 中国語 Web サイトの他の関連記事を参照してください。