package main
import "fmt"
var age int = 50 //todo:这个作用域是全局的
var name string = "jack"
func test() {
age := 10 //todo:这个作用域仅在test函数内
name := "tom"
fmt.Println("age=", age)
fmt.Println("name=", name)
}
func main() {
fmt.Println("age=", age) //age=50
fmt.Println("name=", name) //name=jack
test() //age=10 name=tom
fmt.Println("a=", a) //a=50
f1() //a=50
f2() //a=100
f1() //a=50
f3() //a=200
f1() //a=200
}
var a int = 50
func f1() {
fmt.Println("a=", a)
}
func f2() {
a := 100 //todo:体现了变量的作用域,这里的a是同名但仅限于f2函数内的局部变量
fmt.Println("a=", a)
}
func f3() {
a = 200 //todo:体现了闭包,这里更该了全局变量a的值
fmt.Println("a=", a)
}