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

Bagaimana untuk Menggabungkan Peta di Golang Sambil Mengelakkan Nilai Pendua?

Susan Sarandon
Susan Sarandonasal
2024-10-27 18:45:01333semak imbas

How to Merge Maps in Golang While Avoiding Duplicate Values?

Gabungkan Peta di Golang

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.

Simple Cantuman

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.

Mengelakkan Pendua

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!

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