1. ホーム
  2. map

[解決済み] goで2つのマップの和を得る

2022-03-06 20:01:18

質問

ファイルのパスを表すオブジェクトを作成する再帰的な関数があります(キーはパスで、値はファイルに関する情報です)。これはファイルだけを扱うものなので、ディレクトリに遭遇した場合、そのディレクトリに対して再帰的に関数が呼び出されます。

とはいえ、2つのマップのセットユニオンに相当することをしたいのです(つまり、再帰的な呼び出しから更新された"main"マップの値で)。1つのマップを反復して、その中の各キーと値を他のマップの同じものに割り当てる以外に、これを行う慣用的な方法はありますか?

つまり、与えられた a,b は型 map [string] *SomeObject であり、かつ ab を更新する方法はありますか? a にあるすべての値で b ?

解決方法は?

このようなマージを行うための組み込みの方法、または標準パッケージにはメソッドがありません。

単純に反復処理するのが一般的な方法です。

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