美文网首页
002 Go 语言 变量

002 Go 语言 变量

作者: 时光记忆forever | 来源:发表于2018-06-22 01:04 被阅读9次

    使用 var 定义变量

    声明一个变量

    package main
    
    import (
        "fmt"
    )
    
    func main(){
        var x int
        fmt.Println("x: ",x)
    }
    
    # 运行结果
    x:  0
    

    var x int 声明一个int的变量 x。变量 x 没有被赋值,go会自动用变量类型的零值初始化它。运行结果为 x: 0

    声明一个变量并初始化

    var name type = initialvalue 是声明一个变量并初始化变量。

    package main
    
    import (
        "fmt"
    )
    
    func main(){
        
        var y int = 10
        fmt.Println("y: ",y)
    }
    
    # 运行结果
    y:  10
    

    类型推断

    如果一个变量有一个初始值,变量声明中的类型可以省略。

    如果使用语法 var name = initialvalue 声明变量,则Go将自动从初始值推断出该变量的类型。

    package main
    
    import (
        "fmt"
    )
    
    func main(){
        var z = 20
        fmt.Println("z: ",z)
    
    }
    
    # 运行结果
    z:  20
    

    声明多个变量

    var name1,name2 type = initialvalue1,initialvalue2 是声明多个变量的语法。

    package main
    
    import (
        "fmt"
    )
    
    func main(){
        var m,n int = 10,20
        fmt.Printf("m: %d, n: %d\n",m,n)
    }
    
    # 运行结果
    m: 10, n: 20
    
    • 变量都拥有初始值,可以省略数据类型

      package main
      
      import (
          "fmt"
      )
      
      func main(){
          var mm,nn  = 10,20
          fmt.Printf("mm: %d, nn: %d\n",mm,nn)
      }
      
      #运行结果
      mm: 10, nn: 20
      
    • 声明不同类型的变量

      package main
      
      import (
          "fmt"
      )
      
      func main(){
          var (
              name = "xiaoming"
              age = 18
              height int
          )
      
          fmt.Printf("name: %s, age: %d, height: %d\n",name,age,height)
      }
      
      # 运行结果
      name: xiaoming, age: 18, height: 0
      

    短变量声明

    在函数中,简洁赋值语句 := 可在类型明确的地方代替 var 声明。

    name := initialvalue 是短变量声明的语法

    package main
    
    import (
        "fmt"
    )
    
    func main(){
        a,b := 100, "hello"
        fmt.Printf("a: %d, b: %s\n",a,b)
    }
    
    # 运行结果
    a: 100, b: hello
    

    如果我们运行下面的程序:

    package main
    
    import "fmt"
    
    func main() {  
        a, b := 20, 30 //a and b declared
        fmt.Println("a is", a, "b is", b)
        a, b := 40, 50 //error, no new variables
    }
    

    no new variables on left side of := 这是因为变量a和b已经被声明,并且左侧没有新的变量

    接下来运行下面程序:

    package main
    
    import (
        "fmt"
    )
    
    func main(){
        a,b := 100, "hello"
        b,c := "world", 200
        fmt.Printf("a: %d, b: %s, c: %d\n",a,b,c)
    }
    
    # 运行结果
    a: 100, b: world, c: 200
    

    这表示如果左侧有新的变量,我们就可以使用 := 声明变量并赋值。

    关注公众号


    关注公众号

    相关文章

      网友评论

          本文标题:002 Go 语言 变量

          本文链接:https://www.haomeiwen.com/subject/eaehyftx.html