问题的最简单再现:
package main
import "fmt"
type stringMap map[int]string
func (s *stringMap) Merge(m stringMap) {
for key, value := range m {
s[key] = value
}
}
func main() {
myMap := stringMap{1: "a", 2: "b"}
myMap.Merge(stringMap{3: "c"})
fmt.Println(myMap)
}
为什么我不能使用 key
变量作为 mymap stringMap
上的键?
Playground :http://play.golang.org/p/mSprMXq5QF
最佳答案
您不能在指向 map 的指针上使用索引(访问 map )。
您只需进行以下更改(请注意已删除的 *):
func (s stringMap) Merge(m stringMap) { ... }
关于map - 尝试在 Go 中实现 map 合并功能但失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27312205/