検索
ホームページバックエンド開発Golanggolangインターフェースの実装方法

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

Dec 23, 2022 am 10:54 AM
golang言語を移動ポインタ

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 までご連絡ください。
Golang in Action:実際の例とアプリケーションGolang in Action:実際の例とアプリケーションApr 12, 2025 am 12:11 AM

Golangは実際のアプリケーションに優れており、そのシンプルさ、効率性、並行性で知られています。 1)同時プログラミングはゴルチンとチャネルを通じて実装されます。2)柔軟なコードは、インターフェイスと多型を使用して記述されます。3)ネット/HTTPパッケージを使用したネットワークプログラミングを簡素化、4)効率的な同時クローラーを構築する、5)ツールと最高の実践を通じてデバッグと最適化。

Golang:Goプログラミング言語が説明しましたGolang:Goプログラミング言語が説明しましたApr 10, 2025 am 11:18 AM

GOのコア機能には、ガベージコレクション、静的リンク、並行性サポートが含まれます。 1. GO言語の並行性モデルは、GoroutineとChannelを通じて効率的な同時プログラミングを実現します。 2.インターフェイスと多型は、インターフェイスメソッドを介して実装されているため、異なるタイプを統一された方法で処理できます。 3.基本的な使用法は、関数定義と呼び出しの効率を示しています。 4。高度な使用法では、スライスは動的なサイズ変更の強力な機能を提供します。 5.人種条件などの一般的なエラーは、Getest Raceを通じて検出および解決できます。 6.パフォーマンス最適化Sync.Poolを通じてオブジェクトを再利用して、ゴミ収集圧力を軽減します。

Golangの目的:効率的でスケーラブルなシステムの構築Golangの目的:効率的でスケーラブルなシステムの構築Apr 09, 2025 pm 05:17 PM

GO言語は、効率的でスケーラブルなシステムの構築においてうまく機能します。その利点には次のものがあります。1。高性能:マシンコードにコンパイルされ、速度速度が速い。 2。同時プログラミング:ゴルチンとチャネルを介してマルチタスクを簡素化します。 3。シンプルさ:簡潔な構文、学習コストとメンテナンスコストの削減。 4。クロスプラットフォーム:クロスプラットフォームのコンパイル、簡単な展開をサポートします。

SQLソートのステートメントによる順序の結果がランダムに見えるのはなぜですか?SQLソートのステートメントによる順序の結果がランダムに見えるのはなぜですか?Apr 02, 2025 pm 05:24 PM

SQLクエリの結果の並べ替えについて混乱しています。 SQLを学習する過程で、しばしば混乱する問題に遭遇します。最近、著者は「Mick-SQL Basics」を読んでいます...

テクノロジースタックの収束は、テクノロジースタック選択のプロセスにすぎませんか?テクノロジースタックの収束は、テクノロジースタック選択のプロセスにすぎませんか?Apr 02, 2025 pm 05:21 PM

テクノロジースタックの収束とテクノロジーの選択の関係ソフトウェア開発におけるテクノロジーの選択、テクノロジースタックの選択と管理は非常に重要な問題です。最近、一部の読者が提案しています...

反射比較を使用し、GOの3つの構造の違いを処理する方法は?反射比較を使用し、GOの3つの構造の違いを処理する方法は?Apr 02, 2025 pm 05:15 PM

GO言語で3つの構造を比較および処理する方法。 GOプログラミングでは、2つの構造の違いを比較し、これらの違いを...

Goでグローバルにインストールされたパッケージを表示する方法は?Goでグローバルにインストールされたパッケージを表示する方法は?Apr 02, 2025 pm 05:12 PM

Goでグローバルにインストールされたパッケージを表示する方法は? GO言語で開発する過程で、GOはしばしば使用します...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版

SublimeText3 Mac版

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター