Golang에서 지도 병합
Golang에서 여러 지도를 하나의 병합된 지도로 결합하는 것은 일반적인 작업입니다. 세 개의 지도가 있다고 가정해 보겠습니다.
목표는 이러한 지도를 병합하는 것입니다. id 키를 기반으로 결과는 다음과 같습니다.
간단한 병합
맵을 병합하려면 각 입력 맵을 반복하고 연관된 값을 추가할 수 있습니다. 각 키를 결과 맵의 슬라이스에 연결합니다.
<code class="go">func merge(ms ...map[string]string) map[string][]string { res := map[string][]string{} for _, m := range ms { for k, v := range m { res[k] = append(res[k], v) } } return res }</code>
중복 방지
어떤 경우에는 병합된 맵에서 중복 값을 피하고 싶을 수도 있습니다. 이를 달성하려면 추가하기 전에 중복 항목을 확인하세요.
<code class="go">func merge(ms ...map[string]string) map[string][]string { res := map[string][]string{} for _, m := range ms { srcMap: for k, v := range m { // Check if (k,v) was added before: for _, v2 := range res[k] { if v == v2 { continue srcMap } } res[k] = append(res[k], v) } } return res }</code>
사용 예
<code class="go">m1 := map[string]string{"id_1": "val_1"} m2 := map[string]string{"id_2": "val_2", "id_1": "val_1"} m3 := map[string]string{"id_1": "val_3"} res := merge(m1, m2, m3) fmt.Println(res)</code>
출력:
map[id_1:[val_1 val_3] id_2:[val_2]]
위 내용은 Golang에서 맵을 병합하고 중복 값을 피하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!