当前位置 博文首页 > go语言 全局变量和局部变量实例

    go语言 全局变量和局部变量实例

    作者:徒步远方999 时间:2021-02-04 06:13

    一、局部变量

    1 定义在{}里面的变量时局部变量,只能在{}里面有效

    2 执行到定义的那句话,开始分配内存空间,离开作用域自动进行释放

    3 作用域,就是变量作用的范围

    package main 
    import "fmt" 
    func test() {
     i := 111
     fmt.Println("i=", i)
    }
     
    func main() { 
     test()
     {
     i := 10
     fmt.Printf("i=%v\n", i)
     }
     // i=12 错误
     
     if flag := 3; flag == 3 {
     fmt.Println("flag=", flag)
     }
     //fmt.Println("flag=", flag) 错误
    }

    二、全局变量

    1 定义在函数外部的变量称为全局变量

    2 全局变量在任何地方都可以进行使用

    package main 
    import "fmt" 
    func test() {
     fmt.Println("a= ", a)
    }
     
    var a int 
    func main() {
     a = 12
     fmt.Println("a= ", a)
     test()
    }

    三、不同作用域中,同名变量

    1 不同的作用域,允许定义同名的变量

    2 使用变量的原则,就近原则,如果局部变量没有,就去全局变量中找

    package main 
    import "fmt"
     
    //定义一个全局变量
    var a byte 
    func main() { 
     var a int
     fmt.Printf("1: a type is %T\n", a) //int
     
     {
     var a float32
     fmt.Printf("2: a type is %T\n", a) // float32
     }
     
     test()
    }
     
    func test() {
     fmt.Printf("3: a type is %T\n", a) //uint8
    }

    补充:golang全局变量的坑-尽量别用全局变量

    看图片吧~

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持站长博客。如有错误或未考虑完全的地方,望不吝赐教。

    js
    下一篇:没有了