登录
首页 >  Golang >  Go教程

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

时间:2024-12-01 14:19:06 501浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《Go语言函数内修改指针变量值为何失效?》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

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

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

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

原因:本地变量覆盖

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

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

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>