Bagaimana untuk Menggabungkan Peta di Golang Sambil Mengelakkan Nilai Pendua?

Susan Sarandon
Lepaskan: 2024-10-27 18:45:01
asal
332 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!