슬라이스 또는 배열에서 고유 항목 찾기
Go에서는 슬라이스 또는 배열에서 고유 항목을 유지하는 것이 신규 사용자에게 어려울 수 있습니다. 이 가이드에서는 수동 비교 방법과 집합 기반 대안을 모두 제공하여 문제를 다룹니다.
수동 비교 방법
수동 비교 방법에는 배열과 각 요소를 다른 모든 요소와 비교하여 확인합니다. 중복된 항목이 발견되면 건너뜁니다. 최적화된 예는 다음과 같습니다.
<code class="go">visited := []visit{ visit{1, 100}, visit{2, 2}, visit{1, 100}, visit{1, 1}, } unique := map[visit]bool{} for _, v := range visited { unique[v] = true } var uniqueVisits []visit for v := range unique { uniqueVisits = append(uniqueVisits, v) } fmt.Println(uniqueVisits)</code>
Set-Based Alternative
Go는 집합으로 사용할 수 있는 지도 데이터 구조를 제공합니다. Visit 유형의 키와 bool 유형의 값이 있는 맵은 고유한 값을 유지하는 편리한 방법이 될 수 있습니다. 예는 다음과 같습니다.
<code class="go">visited := []visit{ visit{1, 100}, visit{2, 2}, visit{1, 100}, visit{1, 1}, } unique := map[visit]bool{} for _, v := range visited { if !unique[v] { unique[v] = true } } var uniqueVisits []visit for v := range unique { uniqueVisits = append(uniqueVisits, v) } fmt.Println(uniqueVisits)</code>
출력
두 방법 모두 동일한 결과를 출력합니다.
[visit{1 100} visit{2 2} visit{1 1}]
가장 적합한 방법을 선택하세요. 특정 구현 요구 사항. 수동 비교 방법은 요소 비교를 세밀하게 제어할 수 있는 반면, 세트 기반 방법은 단순성과 효율성을 제공합니다.
위 내용은 Go 슬라이스 또는 배열에서 고유한 항목을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!