ホームページ >バックエンド開発 >Golang >Go で「interface{}」値を比較する場合、等価演算子はどのように機能しますか?

Go で「interface{}」値を比較する場合、等価演算子はどのように機能しますか?

DDD
DDDオリジナル
2024-12-03 13:28:09900ブラウズ

How Do Equality Operators Work When Comparing `interface{}` Values in Go?

Interface 型の値の比較{}

Go では、interface{} 型の値の比較は一般的な操作です。ただし、カスタム構造体などの自明でない型を比較す​​る場合、混乱が生じる可能性があります。

等価演算子の利用

インターフェース{}の値を比較するには、等価演算子 == と != を使用します。雇用されている。これらの演算子は、Go プログラミング言語仕様で定義されている特定のルールに従います。

  • インターフェイス値は、同じ動的型と等しい動的値を持つ場合、または両方の値が nil である場合、等しいとみなされます。
  • 型 X の非インターフェイス値と型 T のインターフェイス値 (X が T を実装する場合) の場合、X が比較可能な場合、値は比較可能です。インターフェース値の動的タイプが X と一致し、その動的値が非インターフェース値と等しい場合、これらは等しいと言えます。

構造体とインターフェースの比較

構造体は重要な役割を果たします型の比較で。仕様によると:

  • 空でないフィールドがすべて比較可能な場合、構造体の値は比較可能です。
  • 対応する空でないフィールドが等しい場合、2 つの構造体の値は等しいです。

実際のアプリケーション

次のインターフェース値のスライスを検討してください。{} []インターフェース{}{1, "こんにちは", true}。 1 などの特定の値を検索するには、スライスを反復処理し、等価演算子を使用して各要素を比較します。

for i := 0; i < len(slice); i++ {
  if slice[i] == 1 {
    // Value found!
    break
  }
}

結論

インターフェースの値を比較{} と入力します。 Go には、言語仕様で定義されている等価性ルールを理解することが含まれます。これらのルールを採用することで、開発者は、カスタム構造体などの重要な型を含むインターフェイス値間の比較を自信を持って処理できます。

以上がGo で「interface{}」値を比較する場合、等価演算子はどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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