我实际上是新手,我无法找到如何覆盖 Go 中变量的范围考虑这个...package mainimport ( "fmt")var x = 10var a int = 10func main() { var a int = 20 fmt.Println(a)}当我运行它时,输出为 20,这意味着它实际上打印了局部范围变量如何在主函数中显示全局变量“a”
1 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
你在做什么叫做“变量阴影”。如果你想访问全局变量,唯一的选择就是不隐藏它!
var a int = 10
func main() {
var localA int = 20
fmt.Println(a) // 10
fmt.Println(localA) // 20
}
当然,您可以在隐藏之前将全局值保存在不同的局部变量中。我无法想象这什么时候真正有用:
var a int = 10
func main() {
globalA := a
var a int = 20
fmt.Println(a) // 20
fmt.Println(globalA) // 10
}
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消