Go 语言中如何使用指针

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

1. 创建指针

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

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

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

相关推荐
东风破_6 分钟前
JWT 1:从一个登录请求开始,理解 React 项目里的 API 层与 Mock
前端·后端
东风破_11 分钟前
JWT 3:为什么 Token 要放进 Authorization?Axios 拦截器到底解决了什么?
前端·后端
东风破_12 分钟前
JWT 5:路由守卫是什么?把整个 JWT 登录鉴权流程串起来
前端·后端
东风破_13 分钟前
JWT 2:HTTP 是无状态的,为什么登录成功后还要给 Token?
前端·后端
东风破_20 分钟前
JWT 4:Zustand 到底解决了什么?为什么登录状态要放进 Store?
前端·后端
IT_陈寒27 分钟前
Vite动态导入差点让我秃头,原来问题出在这
前端·人工智能·后端
唐青枫2 小时前
别只把大括号当作用域:Zig Block、标签块与控制流实战
后端
TunerT_TQ3 小时前
Microsoft |Playwright CLI 源码静态审阅:从 5 个文件看浏览器自动化工具的工程边界
后端·开源·github
JavaGuide4 小时前
84.5K+ Star!这个开源编程 Agent 控制台,能统一管理 Codex、Claude Code,DeepSeek Harness 也能接入
后端·github