web-dev-qa-db-ja.com

Goで2つのマップの結合を取得する

ファイルパスを表すオブジェクトを作成する再帰関数があります(キーはパスであり、値はファイルに関する情報です)。ファイルを処理することのみを目的としているため、再帰的であるため、ディレクトリが検出されると、関数はディレクトリ上で再帰的に呼び出されます。

言われていることはすべて、2つのマップ(つまり、再帰呼び出しからの値で更新された「メイン」マップ)の集合和に相当することをしたいと思います。 1つのマップを反復処理し、各キー、その値を他のマップの同じものに割り当てる以外に、これを行う慣用的な方法はありますか?

つまり:a,bはタイプmap [string] *SomeObject、およびaおよびbが最終的に入力されますが、aのすべての値でbを更新する方法はありますか?

52
jeffknupp

組み込みの方法も、標準パッケージにこのようなマージを実行する方法もありません。

理想的な方法は単純に繰り返すことです:

for k, v := range b {
    a[k] = v
}
76
ANisus