ホームページ > バックエンド開発 > Golang > Go でジェネリック インターフェイスを正しく定義するにはどうすればよいですか?

Go でジェネリック インターフェイスを正しく定義するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-04 13:02:10
オリジナル
678 人が閲覧しました

How Do I Correctly Define a Generic Interface in Go?

インターフェイスのジェネリックス

ジェネリック プログラミングを使用すると、さまざまな種類のデータを処理できるコードを作成できます。 Go では、これは型パラメータを通じて実現されます。ジェネリックスの一般的な使用例の 1 つは、型が実装する必要がある一連のメソッドを定義するインターフェイスでの使用です。

イテレータ インターフェイスなどのジェネリック インターフェイスを作成しようとすると、関数またはメソッドの型パラメータ。ジェネリック インターフェイスを定義するには、インターフェイス内の個々のメソッドではなく、インターフェイスの型自体で type パラメーターを指定する必要があります。

ジェネリック イテレータ インターフェイスの正しい実装の例を次に示します:

type Iterator[T any] interface {
    ForEachRemaining(action func(T) error) error
    // other methods
}
ログイン後にコピー

インターフェイス本体内では、T 型パラメータをメソッド内の他の型パラメータとして使用できます。

詳細は次のとおりです。内訳:

  1. Iterator[T any] 構文は、型パラメーター T を持つ汎用インターフェイスを定義します。これは、インターフェイスが、必要なメソッドを実装するあらゆる種類のデータで使用できることを意味します。
  2. ForEachRemaining メソッドは、関数アクションを入力として受け取り、型 T の値を受け入れます。エラー戻り値の型は、アクション関数がエラーを生成する可能性があることを示します。
  3. 特定の型の Iterator インターフェイスを実装するには、インターフェイス内のすべてのメソッドを実装する型を定義する必要があります。例:
type MyIterator[T any] struct {
    // Implementation details
}

func (it *MyIterator[T]) ForEachRemaining(action func(T) error) error {
    // Implementation details
}
ログイン後にコピー

インターフェイス タイプに type パラメーターを指定し、それをインターフェイス メソッド内で使用することにより、さまざまな種類のデータを処理できる汎用インターフェイスを作成し、柔軟な基盤を提供できます。 Go で堅牢で再利用可能なコードを構築するためのものです。

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

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