Menggabungkan berbilang peta dengan jenis kunci yang sama ke dalam satu peta memerlukan penggabungan nilainya untuk kekunci yang sepadan. Di Golang, nilai peta boleh terdiri daripada sebarang jenis, termasuk kepingan.
Pendekatan mudah untuk menggabungkan peta adalah untuk mencipta fungsi yang berulang pada peta input dan menambahkan nilai pada slice untuk kekunci padanan dalam peta hasil.
<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>
Jika nilai pendua untuk kunci yang sama harus dielakkan, fungsi cantum boleh dilanjutkan dengan semakan sebelum menambahkan:
<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 { for _, v2 := range res[k] { if v == v2 { continue srcMap } } res[k] = append(res[k], v) } } return res }</code>
Pertimbangkan peta berikut:
<code class="go">m1 := map[string]string{"id_1": "val_1"} m2 := map[string]string{"id_2": "val_2"} m3 := map[string]string{"id_1": "val_3"}</code>
Menggunakan fungsi cantum untuk menggabungkannya menghasilkan peta hasil berikut:
<code class="go">res := merge(m1, m2, m3) fmt.Println(res)</code>
Output:
map[id_1:[val_1 val_3] id_2:[val_2]]
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Peta di Golang dan Mengendalikan Nilai Pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!