Go中的覆盖范围

我实际上是新手,我无法找到如何覆盖 Go 中变量的范围


考虑这个...


package main


import (

    "fmt"

)


var x = 10

var a int = 10


func main() {

    var a int = 20

    fmt.Println(a)

}

当我运行它时,输出为 20,这意味着它实际上打印了局部范围变量


如何在主函数中显示全局变量“a”


白猪掌柜的
浏览 75回答 1
1回答

守着一只汪

你在做什么叫做“变量阴影”。如果你想访问全局变量,唯一的选择就是不隐藏它!var a int = 10func main() {    var localA int = 20    fmt.Println(a) // 10    fmt.Println(localA) // 20}当然,您可以在隐藏之前将全局值保存在不同的局部变量中。我无法想象这什么时候真正有用:var a int = 10func main() {    globalA := a    var a int = 20    fmt.Println(a) // 20    fmt.Println(globalA) // 10}
打开App,查看更多内容
随时随地看视频慕课网APP