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

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

王林
王林앞으로
2024-02-12 14:36:05696검색

为什么我无法比较 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으로 문의하시기 바랍니다. 삭제