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

AFAIK,没有内置或库函数。而且我认为您的代码尽可能好。

于 2012-08-29T07:25:06.600 回答