GOLANG小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《Go 中如何解决在 init 函数内修改导出变量无法生效的问题?》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!,
,
,
无法在 main 中访问导入包的导出变量,在 go 中,导入包时,包中导出的变量和函数都可以被访问。但是,有时访问导出变量会出现问题。,考虑以下代码:,上述代码会正确地打印 utils.globalvar 的值 1。,然而,如果在 utils 包的 init 函数中重新赋值了导出变量,就会出现问题:,此时,main 包中输出的 globalvar 值仍然是 1,而不是预期的 2。这是因为 init 函数中使用了 := 赋值,导致在 init 函数作用域内创建了一个局部变量,覆盖了全局变量。,要解决此问题,可以在 init 函数中使用 = 赋值,这样可以更新全局变量的值。,修改后的代码可以正常在 main 函数中打印 globalvar 的值 2。,今天关于《Go 中如何解决在 init 函数内修改导出变量无法生效的问题?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注GOLANG公众号!,main 包:,utils 包:,GOLANG小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《Go 中如何解决在 init 函数内修改导出变量无法生效的问题?》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!,
当前位置: > > > > Go 中如何解决在 init 函数内修改导出变量无法生效的问题?
Go 中如何解决在 init 函数内修改导出变量无法生效的问题?
2024-11-08 20:54:48
0浏览
收藏
GOLANG小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《Go 中如何解决在 init 函数内修改导出变量无法生效的问题?》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!
无法在 main 中访问导入包的导出变量
在 go 中,导入包时,包中导出的变量和函数都可以被访问。但是,有时访问导出变量会出现问题。
考虑以下代码:
- utils 包:
package utils import "fmt" var globalvar = 1
- main 包:
package main import ( "data_push/utils" ) func main() { fmt.println(utils.globalvar) }
上述代码会正确地打印 utils.globalvar 的值 1。
然而,如果在 utils 包的 init 函数中重新赋值了导出变量,就会出现问题:
package utils import "fmt" var globalvar = 1 func init() { globalvar = 2 }
此时,main 包中输出的 globalvar 值仍然是 1,而不是预期的 2。这是因为 init 函数中使用了 := 赋值,导致在 init 函数作用域内创建了一个局部变量,覆盖了全局变量。
要解决此问题,可以在 init 函数中使用 = 赋值,这样可以更新全局变量的值。
package utils import "fmt" var globalvar = 1 func init() { globalvar = 2 }
修改后的代码可以正常在 main 函数中打印 globalvar 的值 2。
今天关于《Go 中如何解决在 init 函数内修改导出变量无法生效的问题?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注GOLANG公众号!
- 以创新赋能智慧视觉应用,为旌科技正式发布海山VS859、VS815
- 如何使用 row-col 布局设置默认间距?