一尘不染

在 go 中获取两个地图的并集

go

我有一个递归函数,它创建表示文件路径的对象(键是路径,值是关于文件的信息)。它是递归的,因为它仅用于处理文件,因此如果遇到目录,则会在该目录上递归调用该函数。

话虽如此,我想在两个地图上做等效的集合联合(即“主”地图更新了来自递归调用的值)。除了迭代一个地图并将其中的每个键和值分配给另一个地图中的相同内容之外,是否有一种惯用的方法来做到这一点?

那就是:给定a,b的类型map [string] *SomeObject,以及ab最终被填充,有没有什么办法来更新a所有的值b


阅读 194

收藏
2021-12-03

共1个答案

一尘不染

没有内置的方式,也没有标准包中的任何方法来进行这种合并。

惯用的方法是简单地迭代:

for k, v := range b {
    a[k] = v
}
2021-12-03