ホームページ > バックエンド開発 > Golang > net.Addr を比較できないのはなぜですか?

net.Addr を比較できないのはなぜですか?

王林
リリース: 2024-02-12 14:36:05
転載
739 人が閲覧しました

为什么我无法比较 net.Addr?

質問内容

2つの同一の net.Addr を比較できない理由を理解/理解しようとしています。

この投稿から、2 つのインターフェイスは、基になる型が同じであれば比較でき、その型を比較できるように思えます。次の例では、基礎となる型は net.UDPAddr です。これは、string、int、および []byte の型エイリアスである net.IP を含む構造体です。

スライス IP が比較できないためですか?同じ種類、長さ、内容であっても?

###例:###

https://go.dev/play/p/dIzRCTwBA4P

回避策

この例では 2 つの呼び出しを比較しています

net.ResolveUDPAddr 返される価値。ただし、関数のシグネチャを考慮すると: 実際に 2 つのポインターを比較していることに気づくでしょう。それらは比較可能ですが、等しくありません (比較しているのはポインターであり、ポインターが指す値ではありません)。

go 仕様によると

:

net.UDPAddr

には、[]byte である net.IP が含まれているため、比較できません。

この

拡張機能の例が役に立つかもしれません。

以上がnet.Addr を比較できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート