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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-11-02 16:44:02908ブラウズ

How to Print the Method Set of an Interface in Go?

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

Go でインターフェイスのメソッド セットを取得するには、リフレクションを使用します。この手法を使用すると、コンパイル時に変数の特定の型を知らなくても、変数の型情報を検査して問い合わせることができます。

解決策:

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

reflect.TypeOf() 関数は、インターフェースを埋め込む匿名構造体の型情報。次に、t.NumMethod() はインターフェイスによって定義されたメソッドの数を提供し、t.Method(i).Name を使用してそれらを反復処理してメソッド名を取得します。

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

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