Получение объединения двух карт в go

У меня есть рекурсивная функция, которая создает объекты, представляющие пути к файлам (ключи - это пути, а значения - информация о файле). Он рекурсивный, поскольку он предназначен только для обработки файлов, поэтому, если каталог встречается, функция рекурсивно вызывается в каталоге.

Все, что сказано, я хотел бы сделать эквивалент объединения множеств на двух картах (т.е. "основная" карта обновлена ​​со значениями из рекурсивного вызова). Есть ли идиоматический способ сделать это, помимо итерации по одной карте и назначения каждого ключа, значения в ней на одно и то же на другой карте?

То есть: заданные a,b имеют тип map [string] *SomeObject, и в конце концов будут a и b, есть ли способ обновить a со всеми значениями в b?

Ответы

Ответ 1

В стандартном пакете нет встроенного способа, а также никакого метода для такого слияния.

Идемный способ - просто перебрать:

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