php editor Baicao Go 슬라이스와 NaN 요소를 비교하는 것은 단위 테스트에서 흔히 발생하는 문제입니다. 슬라이스를 다룰 때 두 슬라이스가 동일한지 비교해야 하는 경우가 많지만 슬라이스에 NaN 요소가 포함되어 있으면 비교가 복잡해집니다. NaN은 특수 부동 소수점 숫자입니다. 즉, 숫자 값이 아님을 의미합니다. Go에서는 수학 패키지의 IsNaN 함수를 사용하여 부동 소수점 숫자가 NaN인지 여부를 확인합니다. 슬라이스의 각 요소를 반복하고 IsNaN 함수를 사용하여 NaN인지 확인함으로써 슬라이스 비교 작업을 구현할 수 있습니다.
단위 테스트에서 2개의 슬라이스를 비교해야 합니다. assert
패키지가 이 문제를 해결해야 한다고 생각하지만 nan에서는 작동하지 않습니다.
출력은 다음과 같습니다.
으아아아nan의 속성 중 하나가 자기 자신과 동일하지 않다는 것을 알고 있지만, 반면에 함수에서 예상한 결과를 받습니다.
이 문제를 해결하는 방법을 알고 싶습니다. 간결한 단위 테스트 어설션과 명확한 출력을 얻으시겠습니까?
대안으로 assert
并在两个切片的每个元素上调用 math.isnan
사용을 피하고 두 슬라이스의 각 요소에 대해 math.isnan
을 호출할 수 있지만 이는 단위 테스트에서 매우 장황해 보일 것입니다.
github.com/google/go-cmp/cmp 패키지를 사용하면 더욱 복잡한 비교가 가능합니다. cmpopts.equatenans를 사용하면 nan을 포함할 수 있는 데이터 구조를 쉽게 비교할 수 있습니다.
으아아아위 내용은 단위 테스트에서 Go 슬라이스와 NaN 요소를 비교하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!