golangインターフェースクエリ
Golang は Go 言語としても知られ、オープンソースのコンパイル済みシステムレベルのプログラミング言語です。 Golang は他のプログラミング言語と比べて同時実行性が高く、メモリの安全性が強いため、インターネット アプリケーションで広く使用されています。 Golang では、インターフェイスは非常に重要な概念であり、ポリモーフィズムを実現するための中心的なメカニズムです。この記事では、Golang におけるインターフェースクエリの関連内容を紹介します。
1. インターフェースの最初の紹介
- インターフェースの概念
Golang では、インターフェースはオブジェクトの動作仕様を定義する型です。つまり、オブジェクトがどのメソッドを持つべきかを指定します。インターフェイスは抽象的な概念であり、それ自体には実際的な意味はなく、インターフェイスを実装する型によって実装されるメソッドのセットを定義するだけです。 Golang では、インターフェイスを実装する型はインターフェイスに定義されているすべてのメソッドを実装する必要があります。実装しないとコンパイル エラーが発生します。
- インターフェースの役割
インターフェースは、Golang でポリモーフィズムを実現するメカニズムです。インターフェースを利用することで、異なる種類のオブジェクトを同じ種類として扱うことができ、オブジェクトの統一的な処理を実現します。 Golang では、インターフェイスを使用して、依存関係の挿入や型変換などの機能を実装することもできます。
- インターフェースの定義
Golang では、type キーワードを使用してインターフェースの型を定義できます。インターフェイスは次のように定義されます。
type interface_name interface { method_name1(parameters_list) return_value_list method_name2(parameters_list) return_value_list ... }
インターフェイス定義では、各メソッドはメソッド名、パラメーター リスト、および戻り値リストで構成されます。このうち、パラメータリストと戻り値リストは複数のパラメータを指定できます。メソッドに戻り値がない場合、戻り値リストは省略できます。
2. インターフェイス クエリ
- インターフェイス クエリの概念
インターフェイス クエリは、プログラムの実行中にオブジェクトが特定のインターフェイスを実装するかどうか、およびその方法を決定することを指します。このオブジェクトのメソッドを使用します。 Golang では、型アサーションと型判断を使用してインターフェイス クエリを実行できます。
- 型アサーション
型アサーションとは、プログラムの実行時にオブジェクトが特定の型であるかどうかを判断し、その型に変換することを指します。 Golang では、次のメソッドを使用して型アサーションを実行できます。
value, ok := object.(type_name)
ここで、 object は型指定する必要があるオブジェクトを表し、 type_name は変換する必要がある型を表します。 object が type_name 型のオブジェクトの場合、value は変換されたオブジェクトを表し、ok は true になります。それ以外の場合、value は nil で、ok は false になります。
- 型判定
型判定とは、プログラムの実行時にオブジェクトが特定のインターフェースを実装しているかどうかを判定することを指します。 Golang では、次のような方法で型を判定できます。
_, ok := object.(interface_name)
このうち、object は判定する必要があるオブジェクトを表し、interface_name は実装する必要があるインターフェイスを表します。オブジェクトが Interface_name インターフェイスを実装している場合、ok は true であり、それ以外の場合、ok は false です。
3. デモの例
以下では、例を使用してインターフェイス クエリの使用法を示します。
- インターフェイスの作成
まず、動物の動作仕様を定義するインターフェイス Animal を作成する必要があります。 Animal インターフェイスの定義は次のとおりです。
type Animal interface { Eat(food string) string Sleep() string }
Animal インターフェイスでは、動物の食事と睡眠の動作を表すために、Eat および Sleep という 2 つのメソッドが定義されています。
- 実装クラスの作成
次に、Animal インターフェイスで定義されたメソッドを実装するために、2 つの実装クラス Cat と Dog を作成する必要があります。 Cat クラスと Dog クラスは次のように定義されます。
type Cat struct{} func (c *Cat) Eat(food string) string { return fmt.Sprintf("Cat is eating %s", food) } func (c *Cat) Sleep() string { return "Cat is sleeping" } type Dog struct{} func (d *Dog) Eat(food string) string { return fmt.Sprintf("Dog is eating %s", food) } func (d *Dog) Sleep() string { return "Dog is sleeping" }
Cat クラスと Dog クラスでは、Animal インターフェイスで定義された 2 つのメソッド Eat と Sleep がそれぞれ実装されます。
- インターフェイス クエリのテスト
最後に、Cat オブジェクトと Dog オブジェクトが Animal インターフェイスを実装しているかどうかを判断するために、インターフェイス クエリの機能をテストする必要があります。テスト コードは次のとおりです。
func main() { var animal Animal cat := &Cat{} if _, ok := cat.(Animal); ok { fmt.Println("cat implements Animal interface") animal = cat } dog := &Dog{} if _, ok := dog.(Animal); ok { fmt.Println("dog implements Animal interface") animal = dog } fmt.Println(animal.Eat("meat")) fmt.Println(animal.Sleep()) }
テスト コードでは、まず、Animal インターフェイスを実装するオブジェクトを格納する変数 Animal を作成します。次に、Cat オブジェクトと Dog オブジェクトをそれぞれ作成し、Animal インターフェイスを実装しているかどうかを型判定によって決定します。最後に、テストのために動物オブジェクトの Eat メソッドと Sleep メソッドを呼び出します。
4. 概要
インターフェイスは、Golang でポリモーフィズムを実現するための中心的なメカニズムです。インターフェイス クエリは、オブジェクトがインターフェイスを実装しているかどうか、およびプログラムの実行時にオブジェクトを使用する方法を決定する方法です。 . . Golang では、型アサーションと型判断を使用して、インターフェイス クエリを実行し、オブジェクトに対してポリモーフィックな操作を実行できます。
以上がgolangインターフェースクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

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

この記事では、Debianシステムの下でPostgreSQLデータベースを監視するためのさまざまな方法とツールを紹介し、データベースのパフォーマンス監視を完全に把握するのに役立ちます。 1. PostgreSQLを使用して監視を監視するビューPostgreSQL自体は、データベースアクティビティを監視するための複数のビューを提供します。 PG_STAT_REPLICATION:特にストリームレプリケーションクラスターに適した複製ステータスを監視します。 PG_STAT_DATABASE:データベースサイズ、トランザクションコミット/ロールバック時間、その他のキーインジケーターなどのデータベース統計を提供します。 2。ログ分析ツールPGBADGを使用します

バックエンド学習パス:フロントエンドからバックエンドへの探査の旅は、フロントエンド開発から変わるバックエンド初心者として、すでにNodeJSの基盤を持っています...

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

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

Beegoormフレームワークでは、モデルに関連付けられているデータベースを指定する方法は?多くのBEEGOプロジェクトでは、複数のデータベースを同時に操作する必要があります。 Beegoを使用する場合...
