2012-08-29 23 views
8

Was ist der beste Weg, um Schlüssel-Wert-Paare von einer Karte in eine andere in Go zusammenzuführen? Ich benutze eine einfache Schleife, aber ich frage mich, ob es etwas wie PHP's array_merge gibt, das verwendet werden könnte.Zusammenführen von Karten in Go

bigmap := map[string]string{"a":"a", "b":"b", "c":"c"} 
smallmap := map[string]string{"d":"d"} 

for k, v := range smallmap { 
    bigmap[k] = v 
} 

Antwort

5

Nein, gibt es nicht.

Dies wäre nicht so nützlich wie der klare Code, den Sie geschrieben haben, ist kurz genug und hat den Vorteil, die Implementierung nicht zu verstecken.

Sie können Ihre eigene Funktion tun, wenn Sie es brauchen:

func addmap(a map[string]string, b map[string]string) { 
    for k,v := range b { 
     a[k] = v 
    } 
} 

addmap(bigmap, smallmap) 

Aber wie Go keine Generika hat, würden Sie Sie eine andere Funktion für jeden konkreten Kartentyp machen müssen verwenden möchten.

0

AFAIK, dafür gibt es weder eine integrierte noch eine Bibliotheksfunktion. Und ich denke, dein Code ist so gut wie er nur sein kann.