package main
import (
"fmt"
)
var a="a"
func main() {
fmt.Println("func main",a)
j()
g()
k()
}
func g(){
fmt.Println("func g",a)
}
func j(){
//局部作用域
//a:="j"
//全部作用域
a="j"
fmt.Println("func j",a)
}
func k(){
fmt.Println("func k",a)
}
以上程序有个注意的地方
当func j()中的局部变量的注释打开,a:="j"(红色部分)时
打印
func main a
func j j
func g a
func k a
当func j()中的全部变量的注释打开,a="j"(蓝色部分)时
func main a
func j j
func g j
func k j
就是a="j"和a:="j"的区别,差了一个分号,就差别那么大?看下下面的解释大家就懂了..
其实
a="j"的意思就是把全局变量a重新赋值成"j"
a:="j"的意思就是重新定义一个新的局部变量a并赋值成"j"
没有评论 :
发表评论