我实际上是新手,我无法找到如何在Go中覆盖变量范围的方法
考虑这个...
package main
import (
"fmt"
)
var x = 10
var a int = 10
func main() {
var a int = 20
fmt.Println(a)
}
当我运行它时,输出为20,这意味着它实际上会打印局部范围变量
如何在主函数中显示全局变量'a'
答案 0 :(得分:4)
您正在做的事情称为“可变阴影”。如果要访问全局变量,唯一的选择就是不隐藏它!
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
}