在Go中合并地图

cod*_*ial 14 go

Go中将键值对从一个映射合并到另一个映射的最佳方法是什么?我正在使用一个简单的循环,但我想知道是否有类似PHP的东西array_merge可以使用.

bigmap := map[string]string{"a":"a", "b":"b", "c":"c"}
smallmap := map[string]string{"d":"d"}

for k, v := range smallmap {
    bigmap[k] = v
}
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 8

不,没有.

这不是那么有用,因为您编写的明确代码足够短并且具有不隐藏实现的优点.

如果需要,您可以自己动手:

func addmap(a map[string]string, b map[string]string) {
    for k,v := range b {
        a[k] = v
    }
}

addmap(bigmap, smallmap)
Run Code Online (Sandbox Code Playgroud)

但是由于Go没有泛型,您必须为要使用的每个具体地图类型创建不同的函数.

  • 谁能向我解释一下 Go 是怎么回事?它没有任何现代语言的功能。三元运算符:NOPE。基本数据结构操作:NOPE。字符串操作实用程序:NOPE...到处都是如此多的样板代码... (3认同)