インターフェイスからメソッド名のリストを取得する
Go では、リフレクションを使用して実行時にプログラムの内部構造を検査および操作できます。 。これには、メソッド名などのインターフェイス タイプに関する情報にアクセスする機能が含まれます。
次のインターフェイスについて考えてみましょう。
<code class="go">type FooService interface { Foo1(x int) int Foo2(x string) string }</code>
このインターフェイスのメソッド名のリストを取得するには、次のコマンドを使用します。 reflection:
<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 中国語 Web サイトの他の関連記事を参照してください。