首页 > 解决方案 > 不了解变量

问题描述

我对变量感到困惑。情况1:

package main
var a = "F"
func main() {
  n()
  m()
  n()
}
func n() {
    print(a)
}
func m() {
  a = "O"
  print(a)
}

结果 = FOO

但是当我改变a = "O"var a = "O"a := "O")结果是FOF。

标签: govariables

解决方案


var a = "O"并且a := "O"都声明了新变量。这意味着a内部变量与全局变量m不同a,因此将其设置为O不会更改全局变量的值。

如果它们在不同的范围内,您可以像这样隐藏变量,在这种情况下就是这样。

一个在全局范围内,一个在m函数范围内。


推荐阅读