Go语言函数内修改指针变量值为何失效?

go语言函数内修改指针变量值为何失效?

指针值未成功修改原因探究

在代码段中,我们试图在initDB函数内修改指针变量db,使其指向一个新创建的数据库连接。但是,在main函数中打印db时却发现它的值为nil。

原因:本地变量覆盖

在Go语言中,函数内的局部变量(名)会覆盖参数变量(名)。因此,在initDB函数中声明的db局部变量与main函数传入的指针变量db同名。当在initDB函数中为局部变量db重新赋值时,只会修改局部变量的值,而不会修改main函数中传入的参数变量的值。

立即学习“go语言免费学习笔记(深入)”;

简而言之,initDB函数内的修改操作只影响了局部变量db,而没有修改传入的指针变量db。因此,在main函数中打印db时,仍然是其初始的nil值。

以上就是Go语言函数内修改指针变量值为何失效?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2316394.html

(0)
上一篇 2025年2月28日 14:55:17
下一篇 2025年2月19日 04:26:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论