Golang 菜鸟教程

Golang 控制语句

Golang 函数 & 方法

Golang 结构体

Golang 切片 & 数组

Golang 字符串(String)

Golang 指针

Golang 接口

Golang 并发

Golang 异常(Error)

Golang 其他杂项

Go var关键字

var关键字Golang用于创建的变量具有一个适当的名称和初始值的特定类型的。在使用var关键字声明变量时,初始化是可选的,我们将在本文后面讨论。

语法:

var identifier type = expression
//这里cainiaojc$1是标识符
//或称变量名,是int类型,并为分配值200
var cainiaojc1 int = 200

如您所知,Go是一种静态类型的语言,但是它仍然提供了一种在声明变量的同时省略数据类型声明的功能,如以下语法所示。这通常称为类型推断

语法:

var identifier = initialValue
var cainiaojc1 = 200

使用var关键字声明多个变量

var关键字还用于在一行中声明多个变量。您还可以为变量提供初始值,如下所示:

  • 使用var关键字以及类型声明多个变量:

    var cainiaojc1, cainiaojc2, cainiaojc3, cainiaojc4 int
  • 使用var关键字声明多个变量以及类型和初始值:

    var cainiaojc1, cainiaojc2, cainiaojc3, cainiaojc4 int = 10, 20, 30, 40

注意:

  • 您还可以使用类型推断(上面讨论过),该推断可使编译器知道该类型,即可以在声明多个变量的同时删除该类型。

    var cainiaojc1, cainiaojc2, cainiaojc3, cainiaojc4 = 10, 20, 30.30, true
  • 您还可以使用多行使用var关键字声明和初始化不同类型的值,如下所示:

    var(
         cainiaojc1 = 100
         cainiaojc2 = 200.57
         cainiaojc3 bool
         cainiaojc4 string = "www.cainiaojc.com"
    )
  • 在声明期间使用类型时,只允许声明多个相同类型的变量。但是在声明期间删除类型,您可以声明多个不同类型的变量。

    //使用var关键字声明变量
    package main
    
    import "fmt"
    
    func main() {
    
        //声明多个相同类型的变量并初始化
        //与类型一起在单行中
        var cainiaojc1, cainiaojc2, cainiaojc3 int = 232, 784, 854
    
        //声明多个不同类型的变量并初始化
    
        //在单行中不指定任何类型
        var cainiaojc4, cainiaojc5, cainiaojc6 = 100, "GFG", 7896.46
    
        fmt.Printf("cainiaojc1的值为 : %d\n", cainiaojc1)
    
        fmt.Printf("cainiaojc2的值为 : %d\n", cainiaojc2)
    
        fmt.Printf("cainiaojc3的值为 : %d\n", cainiaojc3)
    
        fmt.Printf("cainiaojc4的值为 : %d\n", cainiaojc4)
    
        fmt.Printf("cainiaojc5的值为 : %s\n", cainiaojc5)
    
        fmt.Printf("cainiaojc6的值为 : %f", cainiaojc6)
    
    }

    输出:

    cainiaojc$1的值为 : 232
    cainiaojc$1的值为 : 784
    cainiaojc$1的值为 : 854
    cainiaojc$1的值为 : 100
    cainiaojc$1的值为 : GFG
    cainiaojc$1的值为 : 7896.460000

  var关键字的要点:

  • 在使用var关键字声明变量期间,可以省略 type 或= 表达式,但不能同时省略。如果这样做,编译器将抛出一个错误。。

  • 如果删除了表达式,则默认情况下,变量将包含数字的零值和布尔值false的代表字符串“”,而nil则包含接口和引用类型。 因此,在Go语言中没有这样的未初始化变量的概念。

    // var关键字的概念
    package main
    
    import "fmt"
    
    func main() {
    
        //声明变量但不初始化
        var cainiaojc1 int
        var cainiaojc2 string
        var cainiaojc3 float64
        var cainiaojc4 bool
    
        //显示0值变量
        fmt.Printf("cainiaojc1的值是 : %d\n", cainiaojc1)
    
        fmt.Printf("cainiaojc2的值是 : %s\n", cainiaojc2)
    
        fmt.Printf("cainiaojc3的值是 : %f\n", cainiaojc3)
    
        fmt.Printf("cainiaojc4的值是 : %t", cainiaojc4)
    
    }

    输出:

    cainiaojc$1的值是 : 0
    cainiaojc$1的值是 :
    cainiaojc$1的值是 : 0.000000
    cainiaojc$1的值是 : false