如何在 Go 中通过函数修改原始变量的值
go 语言默认按值传递变量若需在函数内修改调用方的原始变量必须传入该变量的指针——本文详解指针传参机制、正确用法及常见误区。 go 语言默认按值传递变量若需在函数内修改调用方的原始变量必须传入该变量的指针——本文详解指针传参机制、正确用法及常见误区。在 Go 中函数参数始终是按值传递pass by value无论传入的是整数、字符串还是结构体函数接收到的都是原值的一份独立拷贝。这意味着直接传递变量名如 changeColor(varName)无法让函数修改原始变量——这与 Python 的“传对象引用”或 JavaScript 的“按共享传递”有本质区别。要实现“在函数中修改原始变量”核心方案是传递变量的地址即指针。指针本身是一个值内存地址它按值传递但通过该地址函数可访问并修改其所指向的原始内存位置。以下是一个完整示例实现颜色状态的切换逻辑package mainimport fmtconst ( yellow yellow black black)// changeColor 接收 *string 类型参数字符串指针// 通过解引用 *color 修改原始变量的值func changeColor(color *string) { if *color yellow { *color black } else { *color yellow }}func main() { varName : yellow fmt.Println(初始值:, varName) // 输出: 初始值: yellow changeColor(varName) // 传入 varName 的地址 fmt.Println(调用后:, varName) // 输出: 调用后: black changeColor(varName) fmt.Println(再次调用后:, varName) // 输出: 再次调用后: yellow}? 关键要点说明 蝉妈妈AI 电商人专属的AI营销助手
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2543984.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!