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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 22:23:29216ブラウズ

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

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

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