106 字
1 分钟
可以对map的元素取地址吗
无法对 map 的 key 或 value 进行取址。以下代码不能通过编译:
package main
import "fmt"
func main() { m := make(map[string]int)
fmt.Println(&m["qcrao"])}编译报错:
./main.go:8:14: cannot take the address of m["qcrao"]如果通过其他 hack 的方式,例如 unsafe.Pointer 等获取到了 key 或 value 的地址,也不能长期持有,因为一旦发生扩容,key 和 value 的位置就会改变,之前保存的地址也就失效了。
相关阅读
本主题其他内容
Go 基础与进阶
本主题共 120 篇 ·
Go 语言 专题 →
Go 语言从入门到进阶:基础语法与工程惯例、标准库常用包、错误处理与并发模式、Web 开发与微服务框架入门,帮助新手建立可持续演进的 Go 代码习惯。