Golang-全局变量与局部变量

介绍Go的全局变量与局部变量

Let‘s 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”

Written on June 24, 2013