ホームページ >バックエンド開発 >Golang >Golang でインターフェイスのメソッド セットを取得するにはどうすればよいですか?

Golang でインターフェイスのメソッド セットを取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-02 03:31:031102ブラウズ

How to Retrieve the Method Set of an Interface in Golang?

Golang でインターフェイスのメソッド セットを取得する方法

Golang でインターフェイスのメソッド セットを決定すると、すべてのインターフェイスのメソッド セットのリストを取得できます。特定のインターフェイスが強制するメソッド。これを実現するために、reflect パッケージを使用します。

Reflection を使用したメソッド セットの抽出

具体的な型の実装に関する事前知識がなくても、次のコード スニペットを使用して、メソッド set:

<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>

を出力します。リフレクションを使用して、インターフェイスに準拠する匿名構造体の Reflect.Type を取得します。 NumMethod() 関数は、インターフェイスによって定義されたメソッドの合計数を取得し、ループは各メソッドを反復処理してその名前を出力します。

コード スニペットを実行すると、次の出力が生成されます。

Search
ListSearches
ClearSearches

このメソッド セットの抽出手法は、実装型の知識がなくてもインターフェイスを動的に操作する必要がある場合に役立ちます。

以上がGolang でインターフェイスのメソッド セットを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。