두 개의 동일한 net.Addr을 비교할 수 없는 이유를 이해하려고 노력 중입니다.
이 게시물에서는 두 인터페이스가 동일한 기본 유형을 가지고 있는지 비교할 수 있어야 하고 해당 유형을 비교할 수 있는 것으로 보입니다. 다음 예에서 기본 유형은 net.UDPAddr입니다. 문자열 int와 []byte의 유형 별칭인 net.IP를 포함하는 구조체입니다.
IP슬라이싱이 비교불가라서 그런걸까요? 종류, 길이, 내용이 동일하더라도?
예:
https://go.dev/play/p/dIzRCTwBA4P
귀하의 예에서는 net.ResolveUDPAddr
에 대한 두 번의 호출로 반환된 값을 비교합니다. 하지만 함수 시그니처를 생각해보면:
실제로 두 포인터를 비교하고 있음을 알 수 있습니다. 두 포인터는 비교할 수 있지만 동일하지는 않습니다(포인터가 가리키는 값이 아니라 포인터를 비교하고 있음).
go 사양에 따르면:
net.UDPAddr에는 []바이트
인 net.IP
net.IP
这是一个 []byte
가 포함되어 있으므로 비교할 수 없습니다.
이 예제 확장이 도움이 될 수 있습니다.
위 내용은 왜 net.Addr을 비교할 수 없나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!