Wie füge ich Karten in Golang zusammen und vermeide dabei doppelte Werte?

Susan Sarandon
Freigeben: 2024-10-27 18:45:01
Original
332 Leute haben es durchsucht

How to Merge Maps in Golang While Avoiding Duplicate Values?

Karten in Golang zusammenführen

In Golang erfordert das Zusammenführen mehrerer Karten die Berücksichtigung des Wertetyps der gewünschten Ergebniskarte als zusammengeführte Werte kann mehrere Werte umfassen, die demselben Schlüssel zugeordnet sind. Um dies zu erreichen, wird empfohlen, ein Slice als Werttyp für die Ergebniskarte zu verwenden.

Einfache Zusammenführung

Um eine einfache Zusammenführung durchzuführen, wird Folgendes bereitgestellt Der Beispielcode kann überarbeitet werden, um Werte aus Quellkarten an den Slice anzuhängen, der demselben Schlüssel in der Ergebniskarte zugeordnet ist:

<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>
Nach dem Login kopieren

In diesem Beispiel ist ms ein variadischer Parameter, der die Übergabe einer beliebigen Anzahl von ermöglicht wird der Zusammenführungsfunktion zugeordnet.

Duplikate vermeiden

Um Duplikate herauszufiltern und sicherzustellen, dass Werte nur einmal in der Ergebniszuordnung aufgeführt werden, kann der Code geändert werden wie folgt:

<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>
Nach dem Login kopieren

Hier prüft der Code vor dem Anhängen eines Werts an die Ergebniskarte, ob das (Schlüssel-Wert-)Paar zuvor hinzugefügt wurde, um Duplikate zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie füge ich Karten in Golang zusammen und vermeide dabei doppelte Werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!