Go 中通过指针实现变量名的“传入”与原地修改

go 不支持直接传递变量名,但可通过指针将变量的内存地址传入函数,从而在函数内修改原始变量的值;本文详解其原理、用法、典型示例及关键注意事项。 go 不支持直接传递变量名,但可通过指针将变量的内存地址传入函数,从而在函数内修改原始变量的值;本文详解其原理、用法、典型示例及关键注意事项。在 Go 中,所有参数都是按值传递(pass-by-value)------这意味着当你把一个变量(如 varName)传给函数时,函数收到的是该变量值的一个副本,对副本的任何修改都不会影响原始变量。因此,像 changeColor(varName) 这样仅传入变量名(或其值)的方式,无法实现"切换颜色并更新原变量"的效果。要真正修改调用方的原始变量,必须传递其内存地址,即使用指针。指针本身是按值传递的(传递的是地址的副本),但它指向的内存位置是唯一的,因此函数可通过解引用(*ptr)读写该位置的数据。以下是一个完整、可运行的示例,实现了颜色在 yellow 和 black 之间的切换:package mainimport "fmt"const ( yellow = "yellow" black = "black")// changeColor 接收 *string 类型指针,原地修改所指向的字符串func changeColor(color *string) { if *color == yellow { *color = black } else { *color = yellow }}func main() { var varName string = yellow fmt.Println("初始值:", varName) // 输出: 初始值: yellow changeColor(&varName) // 传入地址:&varName fmt.Println("第一次调用后:", varName) // 输出: 第一次调用后: black changeColor(&varName) fmt.Println("第二次调用后:", varName) // 输出: 第二次调用后: yellow}? 关键点说明: Mokker AI AI产品图添加背景

相关推荐
枫彩37 分钟前
A股数据源怎么选?用 Python 验收 AI 复盘的日期与明细
python·ai agent·股票数据·mcp
2601_9623824342 分钟前
Python 代码不可不知的函数式编程技术
python·函数式编程·高阶函数·嵌套函数·头等函数
我不是程序员三三1 小时前
如何监控电脑|企业终端行为监控概念科普与落地方法论
数据库·电脑·php
2601_962078031 小时前
Python办公自动化与数据分析实战 培训班2021年
python·数据分析·办公自动化·自动化办公·实战演练
小七在进步1 小时前
C++入门(2)
java·jvm·c++
用户938515635071 小时前
Text2SQL 实战:用 DeepSeek 大模型实现自然语言查询 SQLite 数据库
python·sqlite
lhldsg2 小时前
全民健身解决方案软件开发实战:从架构设计到部署指南
java·前端·数据库·小程序
我是大猴子2 小时前
线上耗时问题排查
数据库
2601_962099682 小时前
Python环境下中文分词实现与应用探索
python·自然语言处理·中文分词·jieba·开源社区
2601_966949652 小时前
批量获取多只股票五档盘口的极简方案:QuantDash Python SDK 实战指南
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash