슬라이스의 동일성 확인
두 슬라이스의 동일성을 비교할 때 표준 연산자 == 및 !=를 직접 사용할 수 없습니다. nil 값에만 작동합니다. 이 문제를 해결하기 위해 Reflect.DeepEqual() 함수를 사용할 수 있습니다.
Deep Equality of Slices
DeepEqual()는 값의 재귀적 비교를 수행하여 모든 항목이 조각 내의 요소가 검사됩니다. 슬라이스의 경우 다음 기준을 고려합니다.
코드 예
다음 코드 조각은 DeepEqual()을 사용하여 슬라이스를 비교하는 방법을 보여줍니다.
package main import ( "fmt" "reflect" ) func main() { s1 := []int{1, 2} s2 := []int{1, 2} fmt.Println(reflect.DeepEqual(s1, s2)) // Output: true (slices are equal) }
== 연산자와의 차이점
== 연산자와 달리 DeepEqual()은 기본 배열을 포함하여 슬라이스의 내부 구조를 고려합니다. 따라서 동일한 요소를 가진 두 인스턴스가 동일하지 않을 수 있는 슬라이스와 같은 객체에 대해 보다 포괄적인 비교를 제공합니다.
위 내용은 Go에서 슬라이스의 동등성을 어떻게 올바르게 비교할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!