ホームページ  >  記事  >  バックエンド開発  >  golangインターフェースの実装方法

golangインターフェースの実装方法

青灯夜游
青灯夜游オリジナル
2022-12-23 10:54:495854ブラウズ

golang では、「type インターフェース 型名 インターフェース{メソッド名 1 (パラメータリスト 1) 戻り値リスト 1 メソッド名 2 (パラメータリスト 2) 戻り値リスト 2...}」という文が使えます。インターフェイスを宣言する ; 「メソッド名」の最初の文字が大文字で、「インターフェイス型名」の最初の文字も大文字の場合、インターフェイスが配置されているパッケージの外部のコードからこのメソッドにアクセスできます。

golangインターフェースの実装方法

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

Go 言語は「伝統的な」オブジェクト指向プログラミング言語ではありません。クラスや継承の概念がありません。

しかし、Go 言語には非常に柔軟なインターフェイス概念があり、それを通じて多くのオブジェクト指向機能を実現できます。多くのオブジェクト指向言語には同様のインターフェイス概念がありますが、Go 言語のインターフェイス型のユニークな点は、暗黙的な実装を満たすことです。つまり、特定の具象型に対して満足のいくインターフェイス型をすべて定義する必要はなく、必要なメソッドがあれば十分です。

この設計により、これらの型の定義を変更することなく、既存の具象型を満たす新しいインターフェイス型を作成できます。これは、使用する型が私たちの制御下にないパッケージからのものである場合に当てはまります。特に役に立ちます。

インターフェイス タイプは、他のタイプの動作を抽象化および一般化したものです。インターフェイス タイプは特定の実装の詳細に束縛されないため、この抽象メソッドを通じて、関数をより柔軟で機能的な適応性を高めることができます。

インターフェイスは、両当事者によって合意された協力協定です。インターフェイスの実装者はインターフェイスがどのように使用されるかを気にする必要はなく、呼び出し側もインターフェイスの実装の詳細を気にする必要はありません。インターフェイスは、含まれるデータの形式、型、構造を公開しない型および抽象構造です。

インターフェイス宣言の形式

各インターフェイス タイプは、いくつかのメソッドで構成されます。インターフェイスの正式なコードは次のとおりです。

type 接口类型名 interface{
    方法名1( 参数列表1 ) 返回值列表1
    方法名2( 参数列表2 ) 返回值列表2
    …
}

各部の説明:

  • インターフェイスの型名: type を使用してインターフェイスをカスタム型名として定義します。 Go 言語のインターフェイスに名前を付ける場合、書き込み操作を伴うインターフェイスは Writer、文字列関数を含むインターフェイスは Stringer、閉じる関数を含むインターフェイスは Closer など、通常は単語の後に er が付けられます。

  • メソッド名: メソッド名の最初の文字が大文字で、インターフェイス型名の最初の文字も大文字の場合、このメソッドはパッケージ外のコードで使用できます。インターフェイスが見つかりました。アクセスします。

  • パラメータ リスト、戻り値リスト: パラメータ リストおよび戻り値リスト内のパラメータ変数名は無視できます。例:

type writer interface{
    Write([]byte) error
}

開発における一般的なインターフェイスと記述方法

Go 言語で提供される多くのパッケージには、io パッケージで提供される Writer インターフェイスなどのインターフェイスがあります。

このインターフェイスは Write() メソッドを呼び出してバイト配列 ([]byte) を書き込むことができ、戻り値は書き込まれたバイト数 (n int) と考えられるエラー (err error) を示します。

同様に、オブジェクトを文字列で表示するインターフェースがあり、このインターフェースの型が実装されていれば、String()メソッドを呼び出すと、オブジェクトに対応する文字列を表示することができます。得られる。 fmt パッケージでは次のように定義されています。

type Writer interface {
    Write(p []byte) (n int, err error)
}

Stringer インターフェイスは Go 言語で非常に頻繁に使用され、その機能は Java または C# 言語の ToString 操作に似ています。

Go 言語の各インターフェイスのメソッドの数はそれほど多くありません。 Go 言語は、インターフェイスを通じて自身の機能を正確に記述し、複数のインターフェイスの埋め込みや組み合わせによって単純なインターフェイスを複雑なインターフェイスに拡張することを望んでいます。この章の後のセクションでは、合成を使用してインターフェイスを拡張する方法について説明します。

【関連する推奨事項:

Go ビデオ チュートリアル プログラミング教育

以上がgolangインターフェースの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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