Go에서 지도에서 키 분할
질문:
더 효율적인 방법이 있나요? 지도에서 키 조각을 얻으려면 하시겠습니까?
현재 일반적인 접근 방식은 맵을 반복하여 키를 슬라이스에 복사하는 것입니다.
i := 0 keys := make([]int, len(mymap)) for k := range mymap { keys[i] = k i++ }
답변:
지정된 슬라이스 용량으로 make 기능을 사용하면 재할당:
keys := make([]int, len(mymap)) i := 0 for k := range mymap { keys[i] = k i++ }
이 접근 방식은 약간 더 간결하며 슬라이스 추가와 관련된 오버헤드를 제거합니다. 많은 수의 키가 포함된 맵을 사용한 테스트에서 추가 기능을 사용하는 것보다 20% 더 빠른 것으로 나타났습니다.
make 함수가 슬라이스의 용량을 설정하는 동안 추가로 인해 여전히 일부 용량이 발생한다는 점은 주목할 가치가 있습니다. 추가할 때마다 용량에 도달했는지 확인하는 추가 오버헤드입니다. 이 경우 배열 구성원을 직접 할당하면 성능이 향상될 수 있습니다.
위 내용은 Go 맵에서 키를 효율적으로 분할하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!