登录
首页 >  Golang >  Go问答

覆盖作用域在 Go 中

来源:stackoverflow

时间:2024-03-09 11:33:25 268浏览 收藏

大家好,我们又见面了啊~本文《覆盖作用域在 Go 中》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

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

考虑一下...

package main

import (
    "fmt"
)

var x = 10
var a int = 10

func main() {
    var a int = 20
    fmt.Println(a)
}

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

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


解决方案


您正在做的事情称为“变量阴影”。如果您想访问全局变量,唯一的选择就是不隐藏它

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
}

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>