Rumah > pembangunan bahagian belakang > Golang > Mengapa saya tidak boleh membandingkan net.Addr?

Mengapa saya tidak boleh membandingkan net.Addr?

王林
Lepaskan: 2024-02-12 14:36:05
ke hadapan
760 orang telah melayarinya

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

Kandungan soalan

Saya cuba memahami/memahami mengapa saya tidak dapat membandingkan dua jaringan yang serupa.Addr.

Daripada siaran ini, nampaknya dua antara muka sepatutnya dapat membandingkan jika mereka mempunyai jenis asas yang sama dan jenis itu boleh dibandingkan. Dalam contoh berikut, jenis asas ialah net.UDPAddr. Ia ialah struktur yang mengandungi rentetan, int dan net.IP, yang merupakan alias jenis []bait.

Adakah kerana menghiris IP tidak setanding? Walaupun jenis, panjang dan kandungan yang sama?

Contoh:

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

Penyelesaian

Contoh anda membandingkan nilai yang dikembalikan oleh dua panggilan kepada net.ResolveUDPAddr. Tetapi jika anda berfikir tentang tandatangan fungsi:

Anda akan perasan bahawa anda sebenarnya membandingkan dua penunjuk; ia adalah setanding, tetapi tidak sama (anda sedang membandingkan penunjuk; bukan nilai yang ditunjukkannya).

Mengikut spesifikasi go:

net.UDPAddr mengandungi net.IPnet.IP 这是一个 []byte yang merupakan []bait dan oleh itu tidak boleh dibandingkan.

Contoh sambungan ini boleh membantu.

Atas ialah kandungan terperinci Mengapa saya tidak boleh membandingkan net.Addr?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan