16

Goでキーと値のペアをあるマップから別のマップにマージする最良の方法は何ですか? 私は単純なループを使用していますが、array_merge使用できる PHP のようなものがあるかどうか疑問に思っていました。

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

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

2 に答える 2

9

いいえ、ありません。

あなたが書いた明確なコードは十分に短く、実装を隠さないという利点があるため、これはあまり役に立ちません。

必要に応じて独自の機能を実行できます。

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

addmap(bigmap, smallmap)

しかし、Go にはジェネリックがないため、使用する具体的なマップ タイプごとに異なる関数を作成する必要があります。

于 2012-08-29T07:31:18.037 に答える
1

私の知る限り、そのための組み込み関数もライブラリ関数もありません。そして、あなたのコードは可能な限り優れていると思います。

于 2012-08-29T07:25:06.600 に答える