← 返回首页

Go中可以对Map的元素取地址吗?

无法对 map 的 key 或 value 进行取址。会发生编译报错,这样设计主要是因为map一旦发生扩容,key 和 value 的位置就会改变,之前保存的地址也就失效了。

func main() {
  m := make(map[string]int)
  fmt.Println(&m["qcrao"])
}

会出现编译报错:

./main.go:8:14: cannot take the address of m["qcrao"]