package main import "fmt" var ( // main 包里面的变量 age = 18 ) func main() { var a = "parent" fmt.Println("outer:", a) // parent { a = "child" // 子作用域声明了同名新变量(遮蔽外层 a) fmt.Println("inner:", a) // child } fmt.Println("outer again:", a) // 仍为 child // 局部变量 var b = "parent" fmt.Println("outer:", b) // parent { // var b = "child" // 新的局部变量b b := "child" // 子作用域声明了同名新变量(遮蔽外层 a) fmt.Println("inner:", b) // child } fmt.Println("outer again:", b) // 仍为 parent fmt.Println(age) }