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

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

王林
王林転載
2024-02-12 14:36:05690ブラウズ

为什么我无法比较 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 までご連絡ください。