> 백엔드 개발 > Golang > 왜 net.Addr을 비교할 수 없나요?

왜 net.Addr을 비교할 수 없나요?

王林
풀어 주다: 2024-02-12 14:36:05
앞으로
759명이 탐색했습니다.

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

질문 내용

두 개의 동일한 net.Addr을 비교할 수 없는 이유를 이해하려고 노력 중입니다.

이 게시물에서는 두 인터페이스가 동일한 기본 유형을 가지고 있는지 비교할 수 있어야 하고 해당 유형을 비교할 수 있는 것으로 보입니다. 다음 예에서 기본 유형은 net.UDPAddr입니다. 문자열 int와 []byte의 유형 별칭인 net.IP를 포함하는 구조체입니다.

IP슬라이싱이 비교불가라서 그런걸까요? 종류, 길이, 내용이 동일하더라도?

예:

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

해결 방법

귀하의 예에서는 net.ResolveUDPAddr에 대한 두 번의 호출로 반환된 값을 비교합니다. 하지만 함수 시그니처를 생각해보면:

실제로 두 포인터를 비교하고 있음을 알 수 있습니다. 두 포인터는 비교할 수 있지만 동일하지는 않습니다(포인터가 가리키는 값이 아니라 포인터를 비교하고 있음).

go 사양에 따르면:

net.UDPAddr에는 []바이트net.IPnet.IP 这是一个 []byte가 포함되어 있으므로 비교할 수 없습니다.

예제 확장이 도움이 될 수 있습니다.

위 내용은 왜 net.Addr을 비교할 수 없나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿