一、变量作用域
- 变量声明位置决定了变量的可访问范围(哪里能调用到变量)
- Go语言中变量的有效范围如下
- 函数级别:变量声明在函数内部,只有在函数内部才能访问,称变量为局部变量
- package 包级别,在当前包下都可以访问.称变量为全局变量.变量声明在函数外面
- 应用级别,在整个应用下任何包内都可以访问.通过首字母大小写控制
二、局部变量
- 局部变量一定是在函数内部
- 在哪个{}内部声明,只能在哪个{}内部访问
func test1() {
i := 2 //从此处开始到test1结束}任何位置都能调用i
if i>=2{
j:=3
fmt.Println(i+j)//此处可以访问i
}
fmt.Println(i)
//fmt.Println(j)//此处不能调用j,超出声明j时{}外
}
func test2() {
fmt.Println(i) //此处无法调用test1()中的i
}
三、全局变量
- 全局变量声明到函数外部,整个包都可以访问
- 如果全局变量首字母大写,跨包也可以访问.
- 声明全局变量时规范是
var (
变量名
变量名=值
)
全局变量代码示例
var (
name = "smallming"
age = 17
)
func demo1() {
fmt.Println("名字:",name)
}
func demo2() {
fmt.Println("年龄:",age)
}