package main
import "fmt"
var a byte //这是一个全局变量
func main() {
var a int //这是一个局部变量
//1、作用域不同,允许用户定义同名变量
//2、使用变量的原则 :就近原则
fmt.Printf("1: %T\n", a)
{
var a float32
fmt.Printf("2: %T\n", a)
}
test()
}
func test() {
fmt.Printf("3: %T\n", a) //因为这里跟其它的函数都不在一个作用域了,所以这里使用到的全局变量
}
运行得到结果为
GOROOT=C:\Go #gosetup GOPATH=E:\go\develop #gosetup C:\Go\bin\go.exe build -i -o C:\Users\baylor\AppData\Local\Temp\___go_build__go.exe E:/awesomeProject01/不同作用域的同名变量.go #gosetup "C:\Program Files\JetBrains\GoLand 2018.1.5\bin\runnerw.exe" C:\Users\baylor\AppData\Local\Temp\___go_build__go.exe #gosetup 1: int 2: float32 3: uint8