Go의 요소 순서에 관계없이 구조와 중첩된 슬라이스를 의미론적으로 비교하는 방법은 일반적인 질문입니다. Go 언어에서 구조는 집계 데이터 유형인 반면 슬라이스는 동적 배열입니다. PHP 편집자 Zimo가 이 질문에 답해 드릴 것입니다. 구조를 비교할 때 모든 구성원이 비교 가능한 유형인 경우에만 비교할 수 있습니다. 중첩된 슬라이스를 비교할 때 슬라이스의 요소를 수준별로 비교해야 합니다. 슬라이스의 요소 유형을 비교할 수 없으면 재귀적 방법을 사용하여 슬라이스의 각 요소를 비교해야 합니다. 구조체이든 중첩된 슬라이스이든 요소를 반복하여 비교할 수 있습니다.
다음 유형 구조 정의를 제공하세요.
으아악모든 계층 수준에서 슬라이스 요소의 순서에 관계없이 A의 다음 두 인스턴스가 의미상 동일한지 테스트하고 싶습니다.
으아악비교 결과가 true
Package cmp는 의미론적 동등성을 위해 두 값을 비교할 때 reflect.DeepEqual
를 더 강력하고 안전하게 대체하기 위한 것입니다.
여기에는 모든 계층 수준에서 슬라이스 요소의 순서에 관계없이 의미론적 평등 구조 비교가 완벽하게 구현되어 있습니다.
파일 source.go
으아악파일 source_test.go
으아악위 내용은 Go에서 요소 순서에 관계없이 구조체와 중첩 슬라이스를 의미론적으로 비교하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!