任何编程语言中都有全局变量和局部变量。
在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 版权协议,转载请附上原文出处链接和本声明。