以下代码是否能编译通过?
package main
import "fmt"
func main() {
m := make(map[string]int)
m["qcrao"] = 1
fmt.Println(&m["qcrao"])
}
不能.
./prog.go:8:15: invalid operation: cannot take address of m["qcrao"] (map index expression of type int)
在线运行
map 的元素不能直接取地址。
map 一旦发生扩容,key 和 value 的位置就会改变,之前保存的地址也就失效了。