golangインターフェースの実装方法
golang では、「type インターフェース 型名 インターフェース{メソッド名 1 (パラメータリスト 1) 戻り値リスト 1 メソッド名 2 (パラメータリスト 2) 戻り値リスト 2...}」という文が使えます。インターフェイスを宣言する ; 「メソッド名」の最初の文字が大文字で、「インターフェイス型名」の最初の文字も大文字の場合、インターフェイスが配置されているパッケージの外部のコードからこのメソッドにアクセスできます。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
Go 言語は「伝統的な」オブジェクト指向プログラミング言語ではありません。クラスや継承の概念がありません。
しかし、Go 言語には非常に柔軟なインターフェイス概念があり、それを通じて多くのオブジェクト指向機能を実現できます。多くのオブジェクト指向言語には同様のインターフェイス概念がありますが、Go 言語のインターフェイス型のユニークな点は、暗黙的な実装を満たすことです。つまり、特定の具象型に対して満足のいくインターフェイス型をすべて定義する必要はなく、必要なメソッドがあれば十分です。
この設計により、これらの型の定義を変更することなく、既存の具象型を満たす新しいインターフェイス型を作成できます。これは、使用する型が私たちの制御下にないパッケージからのものである場合に当てはまります。特に役に立ちます。
インターフェイス タイプは、他のタイプの動作を抽象化および一般化したものです。インターフェイス タイプは特定の実装の詳細に束縛されないため、この抽象メソッドを通じて、関数をより柔軟で機能的な適応性を高めることができます。
インターフェイスは、両当事者によって合意された協力協定です。インターフェイスの実装者はインターフェイスがどのように使用されるかを気にする必要はなく、呼び出し側もインターフェイスの実装の詳細を気にする必要はありません。インターフェイスは、含まれるデータの形式、型、構造を公開しない型および抽象構造です。
インターフェイス宣言の形式
各インターフェイス タイプは、いくつかのメソッドで構成されます。インターフェイスの正式なコードは次のとおりです。
1 2 3 4 5 |
|
各部の説明:
インターフェイスの型名: type を使用してインターフェイスをカスタム型名として定義します。 Go 言語のインターフェイスに名前を付ける場合、書き込み操作を伴うインターフェイスは Writer、文字列関数を含むインターフェイスは Stringer、閉じる関数を含むインターフェイスは Closer など、通常は単語の後に er が付けられます。
メソッド名: メソッド名の最初の文字が大文字で、インターフェイス型名の最初の文字も大文字の場合、このメソッドはパッケージ外のコードで使用できます。インターフェイスが見つかりました。アクセスします。
パラメータ リスト、戻り値リスト: パラメータ リストおよび戻り値リスト内のパラメータ変数名は無視できます。例:
1 2 3 |
|
開発における一般的なインターフェイスと記述方法
Go 言語で提供される多くのパッケージには、io パッケージで提供される Writer インターフェイスなどのインターフェイスがあります。
このインターフェイスは Write() メソッドを呼び出してバイト配列 ([]byte) を書き込むことができ、戻り値は書き込まれたバイト数 (n int) と考えられるエラー (err error) を示します。 同様に、オブジェクトを文字列で表示するインターフェースがあり、このインターフェースの型が実装されていれば、String()メソッドを呼び出すと、オブジェクトに対応する文字列を表示することができます。得られる。 fmt パッケージでは次のように定義されています。1 2 3 |
|
以上がgolangインターフェースの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

GoLandを使用する場合のGolandのカスタム構造タグの問題に関して、Go Language Developmentに使用する場合、いくつかの構成の問題に遭遇することがよくあります。それらの1つは...

VSCODEユーザーのGolang Generic Function Typeの制約の自動削除は、VSCODEを使用してGolangコードを書くときに奇妙な問題に遭遇する可能性があります。いつ...

マルチプロセスのログライティングの並行性セキュリティの問題を効率的に処理します。複数のプロセスが同じログファイルを同時に書き込みます。並行性が安全で効率的であることを確認する方法は?これは...

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

Golangで機能をバックグラウンドランニング、停止、リロードする方法は?プログラミングプロセス中に、バックグラウンド操作を実装して停止する必要があることがよくあります...
