Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menggabungkan peta di Golang dan mengelakkan nilai pendua?
Menggabungkan Peta di Golang
Menggabungkan berbilang peta menjadi satu peta bercantum di Golang ialah tugas biasa. Katakan anda mempunyai tiga peta:
Matlamatnya adalah untuk menggabungkan peta ini berdasarkan kekunci id, menghasilkan:
Simple Cantuman
Untuk menggabungkan peta, anda boleh mengulangi setiap peta input dan menambah nilai yang dikaitkan dengan setiap kekunci kepada kepingan 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>
Mengelakkan Pendua
Dalam sesetengah kes, anda mungkin mahu mengelakkan nilai pendua dalam peta yang digabungkan. Untuk mencapai matlamat ini, semak pendua sebelum melampirkan.
<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>
Contoh Penggunaan
<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>
Output:
map[id_1:[val_1 val_3] id_2:[val_2]]
Atas ialah kandungan terperinci Bagaimana untuk menggabungkan peta di Golang dan mengelakkan nilai pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!