指针值未成功修改原因探究
在代码段中,我们试图在initDB函数内修改指针变量db,使其指向一个新创建的数据库连接。但是,在main函数中打印db时却发现它的值为nil。
原因:本地变量覆盖
在Go语言中,函数内的局部变量(名)会覆盖参数变量(名)。因此,在initDB函数中声明的db局部变量与main函数传入的指针变量db同名。当在initDB函数中为局部变量db重新赋值时,只会修改局部变量的值,而不会修改main函数中传入的参数变量的值。
立即学习“go语言免费学习笔记(深入)”;
简而言之,initDB函数内的修改操作只影响了局部变量db,而没有修改传入的指针变量db。因此,在main函数中打印db时,仍然是其初始的nil值。
以上就是Go语言函数内修改指针变量值为何失效?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com