>백엔드 개발 >Golang >Go 슬라이스에 요소 존재 여부를 일반적으로 어떻게 확인할 수 있나요?

Go 슬라이스에 요소 존재 여부를 일반적으로 어떻게 확인할 수 있나요?

DDD
DDD원래의
2024-10-31 08:44:01340검색

How Can You Check for Element Presence in Go Slices Generically?

Go 슬라이스의 요소 감지에 대한 일반적인 접근 방식

Go에서는 슬라이스에 특정 요소가 포함되어 있는지 확인하는 것이 일반적인 작업일 수 있습니다. 이를 위한 기본 제공 방법은 없지만 이 기능을 달성하는 일반 코드를 작성하는 것이 가능합니다.

인터페이스 접근 방식:

처음에는 다음을 고려할 수 있습니다. 인터페이스{} 유형을 사용하여 알 수 없는 요소를 나타냅니다. 그러나 이 접근 방식에는 개별 요소를 비교하기 위해 유형 어설션이 필요하므로 제한 사항이 있습니다.

리플렉션 기반 접근 방식:

보다 포괄적인 솔루션은 리플렉션을 사용하여 슬라이스의 요소를 원하는 값과 비교합니다. 구현은 다음과 같습니다.

이 반사 기반 접근 방식은 요소 유형에 관계없이 모든 슬라이스에서 요소 존재 여부를 확인할 수 있는 일반적인 솔루션을 제공합니다. 그러나 추가 반사 오버헤드로 인해 특정 요소 유형 함수에 비해 상당한 성능 저하가 발생합니다.

성능 고려 사항:

일반 Contains() 벤치마킹 제네릭이 아닌 동등 항목에 대한 함수는 상당한 속도 저하를 보여줍니다. 이 경우 약 50-60배 더 느립니다. 예.

사용 예:

다음 예에서는 Contains() 함수의 사용법을 보여줍니다.

위 내용은 Go 슬라이스에 요소 존재 여부를 일반적으로 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.