Golang에서 지도의 동등성을 테스트하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-16 22:26:03
원래의
488명이 탐색했습니다.

How to Test Equivalence of Maps in Golang?

Golang에서 지도의 동등성 테스트

지도와 관련된 테이블 기반 테스트를 작성할 때 동등성을 결정하는 것이 어려울 수 있습니다. 한 가지 접근 방식은 길이와 개별 키-값 쌍의 동일성을 수동으로 확인하는 것이지만 이는 다양한 지도 유형에 대해 반복됩니다.

관용적 접근 방식

Go 라이브러리는 다음을 제공합니다. 내장 솔루션: Reflect.DeepEqual. 이 함수는 두 개의 인터페이스{} 인수를 사용하여 해당 값을 재귀적으로 비교합니다. 맵의 경우 다음 단계를 사용하여 길이, 키 및 값을 비교합니다.

  1. 두 맵이 모두 nil인지 확인합니다.
  2. 길이가 같은지 확인합니다.
  3. 동일한 (키, 값) 쌍 세트가 있는지 확인합니다.

사용 예

두 맵 m1과 m2를 비교하려면 다음을 사용하세요. 다음 코드:

import "reflect"

eq := reflect.DeepEqual(m1, m2)
if eq {
    fmt.Println("They're equal.")
} else {
    fmt.Println("They're unequal.")
}
로그인 후 복사

이 솔루션은 사용자 정의 비교 논리가 필요하지 않으며 다양한 지도 유형에서 작동합니다. 그러나 잘못 전달된 경우 맵이 아닌 값도 비교한다는 점에 유의하세요.

위 내용은 Golang에서 지도의 동등성을 테스트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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