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

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

Susan Sarandon
リリース: 2024-10-31 22:23:29
オリジナル
229 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート