先举个栗子,全局作用域变量,与 := 符号声明赋值新变量
package main import "fmt" var a = "GG" func main() { n() m() n() } func n() { fmt.Println(a) } func m() { // 对于 := 定义的变量,新变量a与全局已定义的a变量同名,不在一个作用域 //所以golong定义新的变量a。遮住全局变量a,所以m()打印"66" a := "66" fmt.Println(a) }
局部变量
在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。
以下实例中 main() 函数使用了局部变量 a, b, c:
package main import "fmt" func main() { /* 声明局部变量 */ var a, b, c int /* 初始化参数 */ a = 10 b = 20 c = a + b fmt.Printf ("结果: a = %d, b = %d and c = %d\n", a, b, c) }