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!