变量作用域
作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。
变量可以在三个地方声明:
- 函数内定义的变量称为局部变量
- 函数外定义的变量称为全局变量
- 函数定义中的变量称为形式参数
全局变量
在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用,全局变量可以在任何函数中使用。
var g = 1
func testGlobal() {
a := 2
b := 3
g := a + b
fmt.Println(g)
}
局部变量
在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。
func testLocal() {
a := 2
b := 3
g := a + b
fmt.Println(g)
}
形式参数
形式参数会作为函数的局部变量来使用
func testParams(g int) {
g = g + 1
fmt.Println(g)
}