2つの同一の net.Addr を比較できない理由を理解/理解しようとしています。
この投稿から、2 つのインターフェイスは、基になる型が同じであれば比較でき、その型を比較できるように思えます。次の例では、基礎となる型は net.UDPAddr です。これは、string、int、および []byte の型エイリアスである net.IP を含む構造体です。
スライス IP が比較できないためですか?同じ種類、長さ、内容であっても?
###例:###https://go.dev/play/p/dIzRCTwBA4P
回避策
net.ResolveUDPAddr 返される価値。ただし、関数のシグネチャを考慮すると:
実際に 2 つのポインターを比較していることに気づくでしょう。それらは比較可能ですが、等しくありません (比較しているのはポインターであり、ポインターが指す値ではありません)。
go 仕様によると net.UDPAddr
には、[]byte である net.IP
が含まれているため、比較できません。
以上がnet.Addr を比較できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。