您的位置 首页 知识分享

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

指针值未成功修改原因探究 在代码段中,我们试图在initDB函数内修改指针变量db,使其指向一个新创建的数据库…

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

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

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

原因:本地变量覆盖

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

立即学习“”;

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

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

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/4332.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部