Di Golang, penggabungan berbilang peta memerlukan pertimbangan jenis nilai peta hasil yang diingini, sebagai nilai yang digabungkan mungkin merangkumi berbilang nilai yang dikaitkan dengan kunci yang sama. Untuk mencapai matlamat ini, adalah disyorkan untuk menggunakan kepingan sebagai jenis nilai untuk peta hasil.
Untuk melakukan cantuman mudah, yang disediakan kod sampel boleh disemak untuk menambahkan nilai daripada peta sumber kepada hirisan yang dikaitkan dengan kunci yang sama 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>
Dalam contoh ini, ms ialah parameter variadik, membenarkan penghantaran sebarang nombor peta ke fungsi cantum.
Untuk menapis pendua dan memastikan nilai disenaraikan sekali sahaja dalam peta hasil, kod boleh diubah suai seperti berikut:
<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>
Di sini, sebelum menambahkan nilai pada peta hasil, kod menyemak sama ada pasangan (kunci, nilai) telah ditambahkan sebelum ini, menghalang pendua.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Peta di Golang Sambil Mengelakkan Nilai Pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!