Go 语言中如何使用指针

Go 支持指针。指针是一个变量,它存储的是数据在内存中的地址,而不是值本身。

1. 创建指针

Go 中除映射和切片外的所有变量都是值类型。这意味着,如果将一个变量传递给函数,并且想在函数外部对该变量进行修改,则不能直接修改该变量。每当将一个变量发送给函数时,都会传入该变量的一个副本。

如果想修改变量,一般的方法是使用一个指向内存地址的指针,而不是试图修改变量本身。换句话说,可以使用一个指向变量地址的指针,而不是值本身的副本。当向函数传入一个指针时,原始值和函数中使用的值都指向内存的同一地址。因为它们指向内存中的同一个位置,当改变一个值时,另一个值也会跟着改变。

指针也可以用于传递较大的变量。如果有一个很大的结构体,那么应用程序将需要时间和内存来将结构体及其所有字段复制到一个函数中,而如果传递一个指针,函数将只接收结构体的内存地址。内存地址的体积将比结构体小得多,因此应用程序的效率将更高。

相关推荐
调试人生的显微镜27 分钟前
WebView 中 Cookie 丢失怎么办?跨域状态不同步的调试与修复经验
后端
weixin_4373982140 分钟前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
极客悟道1 小时前
巧解 Docker 镜像拉取难题:无需梯子和服务器,拉取数量无限制
后端·github
aiopencode1 小时前
iOS 出海 App 安全加固指南:无源码环境下的 IPA 加固与防破解方法
后端
liangdabiao1 小时前
AI一人公司?先搞定聚合支付!一天搞定全能的聚合支付系统
后端
AillemaC1 小时前
三分钟看懂回调函数
后端
yeyong1 小时前
越学越糟心,今天遇到又一种新的服务控制方式 snap,用它来跑snmpd
后端
喷火龙8号1 小时前
深入理解MSC架构:现代前后端分离项目的最佳实践
后端·架构
Java技术小馆2 小时前
GitDiagram如何让你的GitHub项目可视化
java·后端·面试
星星电灯猴2 小时前
iOS 性能调试全流程:从 Demo 到产品化的小团队实战经验
后端