golang全局变量

  • Post author:
  • Post category:golang


任何编程语言中都有全局变量和局部变量。

在golang中,全局变量的生命周期属于整个包,这个和C不同,因为C语言没有包的概念。

在golang的main包中,main包定义的全局变量无法被其他包引用。

如果想使用全局变量,建议在其他包中定义并进行引用。

在golang中,局部变量的生命周期属于花括号之内,这和C语言一致。

还有,注意全局变量声明了一个变量之后,如果再声明一个同名局部变量,该同名局部变量的声明周期为花括号内。

在其他语言中,局部变量会得到明显确认,但golang中,有种声明局部变量的语法糖 := 。

如下面例子:

var p int

func main() {


p, err := test(4)

if err != nil {


log.Fatal(err)

}

}

func test(i int) (int, error) {


return i + 1, nil

}

在该例子中,main程序里的p 由 := 实现,为局部变量,该变量改动不会影响全局变量。



版权声明:本文为wangzhezhilu001原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。