一.变量作用域

  • 变量声明位置决定了变量的可访问范围(哪里能调用到变量)
  • Go语言中变量的有效范围如下

    • 函数级别:变量声明在函数内部,只有在函数内部才能访问,称变量为局部变量
    • package 包级别,在当前包下都可以访问.称变量为全局变量.变量声明在函数外面
    • 应用级别,在整个应用下任何包内都可以访问.通过首字母大小写控制

      二.局部变量

  • 局部变量一定是在函数内部

  • 在哪个{}内部声明,只能在哪个{}内部访问
    1. func test1() {
    2. i := 2 //从此处开始到test1结束}任何位置都能调用i
    3. if i>=2{
    4. j:=3
    5. fmt.Println(i+j)//此处可以访问i
    6. }
    7. fmt.Println(i)
    8. //fmt.Println(j)//此处不能调用j,超出声明j时{}外
    9. }
    10. func test2() {
    11. fmt.Println(i) //此处无法调用test1()中的i
    12. }

三.全局变量

  • 全局变量声明到函数外部,整个包都可以访问
  • 如果全局变量首字母大写,跨包也可以访问.
  • 声明全局变量时规范是

    1. var (
    2. 变量名
    3. 变量名=值
    4. )
  • 全局变量代码示例 ```go var ( name = “smallming” age = 17 )

func demo1() { fmt.Println(“名字:”,name) }

func demo2() { fmt.Println(“年龄:”,age) } ```