Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menggabungkan Berbilang Peta di Golang Sambil Mengelakkan Nilai Pendua?

Bagaimana untuk Menggabungkan Berbilang Peta di Golang Sambil Mengelakkan Nilai Pendua?

Susan Sarandon
Susan Sarandonasal
2024-10-27 15:39:02834semak imbas

How to Merge Multiple Maps in Golang While Avoiding Duplicate Values?

Menggabungkan Peta di Golang

Masalah:
Gabungkan berbilang peta, mengekalkan nilai yang dikaitkan dengan kunci yang sama merentas peta.

Pendekatan Awal:

Kod yang disediakan cuba menggabungkan peta dengan mengulangi setiap peta, menambah nilai pada peta hasil berdasarkan kekunci padanan. Walau bagaimanapun, pendekatan ini tidak mengendalikan nilai pendua dalam peta hasil.

Gabungan Mudah:

Fungsi cantum yang disemak semula boleh dilaksanakan untuk mengendalikan pendua dengan menambahkan nilai pada kepingan dikaitkan dengan kekunci 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:

Untuk mengelakkan pendua dalam peta hasil, fungsi cantum boleh diubah suai untuk menyemak sedia ada nilai 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 {
            // 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>

Pengujian:

<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]]

Ini menunjukkan penggabungan peta, mengekalkan nilai yang dikaitkan dengan kunci yang sama dan mengelakkan pendua.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Peta di Golang Sambil Mengelakkan Nilai Pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn