首页 > 后端开发 > Golang > 为什么我无法在 Go 中获取指向地图的指针?

为什么我无法在 Go 中获取指向地图的指针?

Susan Sarandon
发布: 2024-11-28 03:30:11
原创
533 人浏览过

Why Can't I Get a Pointer to a Map in Go?

Golang 中的指针和映射

在 Go 中,映射是引用类型,这意味着它们存储实际数据的引用而不是值本身。这可以实现高效的内存管理,因为多个对象可以指向相同的底层数据。

但是,尝试在 Go 中使用 & 运算符获取指向映射的指针可能会导致错误。这是因为 Go 中的映射已经通过引用传递。当您执行赋值时,例如 valueTo := &valueToSomeType,您并不是在创建指针,而是将映射的引用值赋给新变量。这实际上指向与原始映射相同的基础数据。

因此,表达式 valueTo[number] 不适用于指向映射的指针。相反,您应该直接使用 .运算符,如 valueTo[number].

综上所述,Go 中的映射已经是引用类型,因此不需要使用指针来实现引用语义。访问地图元素可以直接使用 .运算符,因为地图始终通过引用传递。

以上是为什么我无法在 Go 中获取指向地图的指针?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板