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

Mengapa saya tidak boleh membandingkan net.Addr?

王林
王林ke hadapan
2024-02-12 14:36:05696semak imbas

为什么我无法比较 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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam