GoByExample-变量


GoByExample-变量

1. 变量的来历

​ 程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是如果我们直接在代码中通过内存地址去操作变量的话,代码的可读性会非常差而且还容易出错,所以我们就利用变量将这个数据的内存地址保存起来,以后直接通过这个变量就能找到内存上对应的数据了。

2. 变量类型

​ 变量(Variable)的功能是存储数据。不同的变量保存的数据类型可能会不一样。经过半个多世纪的发展,编程语言已经基本形成了一套固定的类型,常见变量的数据类型有:整型、浮点型、布尔型等。

Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。

3. 变量声明

Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。并且Go语言的变量声明后必须使用。

  • 方法一:声明一个变量, 默认的值是 0

    package main
    
    import "fmt"
    
    func main(){
        // 方法一:声明一个变量, 默认的值是0
        var a int
        fmt.Println("a = ", a)
        fmt.Printf("a的类型是: %T\n", a)
    }
  • 方法二:声明一个变量, 并初始化一个值

    Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false。 切片、函数、指针变量的默认为nil

    package main
    
    import "fmt"
    
    func main(){
        // 方法二:声明一个变量, 初始化一个值
        var b int = 100
        fmt.Printf("b = %d, type of b = %T\n", b, b)
    
        var bb string = "google.com"
        fmt.Printf("bb = %s, bb的类型是: %T\n", bb, bb)
    }
  • 方法三:有时候我们会将变量的类型省略,这个时候编译器会根据等号右边的值来推导变量的类型完成初始化。

    package main
    
    import "fmt"
    
    func main(){
    
        // 方法三:有时候我们会将变量的类型省略,这个时候编译器会根据等号右边的值来推导变量的类型完成初始化。
        var c = 100
        fmt.Printf("c = %d, type of c = %T\n", c, c)
    
        var cc = "google.com"
        fmt.Printf("cc = %s, cc的类型是: %T\n", cc, cc)
    }
  • 短声明,只能在函数内

    package main
    
    import "fmt"
    
    func main(){
    
        // 方法四:(常用的方法) 省去var关键字,直接自动匹配
        // 注: 短声明是在函数或方法内部使用, 不支持全局变量声明!!!!
        e := 100
        fmt.Printf("e = %d, e的类型是: %T\n", e, e)
    
        f := "google.com"
        fmt.Printf("f = %s, f的类型是: %T\n", f, f)
    }
  • 多变量声明

    package main
    
    import "fmt"
    
    func main(){
    	// 声明多个变量
        var xx, yy int = 100, 200
        fmt.Println("xx = ", xx, ", yy = ", yy)
        var kk, jj = 300, "google.com"
        fmt.Println("kk = ", kk, ", jj = ", jj)
    
        var (
            nn int = 100
            mm bool = true
        )
        fmt.Println("nn = ", nn, ", mm = ", mm)
    }

文章作者: 毛雷
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 毛雷 !
评论
  目录