2013年5月29日星期三

[Go Lang-006] Go基础-全局变量与局部变量


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"


没有评论 :

发表评论