变量的声明

标准格式

var 变量名 变量类型

批量格式

var (
    a int
    b string
    c []float32
    d func() bool
    e struct {
        x int
    }
)
    var a int
    var b string
    var c []float32
    var d func() bool
    var e struct{
        x int
    }
Go语言变量的初始化

默认值:

整型和浮点型变量的默认值为 0。
字符串变量的默认值为空字符串。
布尔型变量默认为 bool。
切片、函数、指针变量的默认为 nil。

变量初始化的标准格式

var hp int = 100

编译器推导类型的格式

var hp = 100
    var defence = 20
    var damageRate float32 = 0.17
    var damage = float32(attack-defence) * damageRate
    fmt.Println(damage)

第 4 行,将 attack 和 defence 相减后的数值结果依然为整型,使用 float32() 将结果转换为 float32 类型,再与 float32 类型的 damageRate 相乘后,damage 类型也是 float32 类型。
提示:damage 变量的右值是一个复杂的表达式,整个过程既有 attack 和 defence 的运算还有强制类型转换。

短变量声明并初始化

hp := 100
Go语言多个变量同时赋值

变量交换

    var b int = 200
    b, a = a, b
    fmt.Println(a, b)```
### Go语言匿名变量
在使用多重赋值时,如果不需要在左值中接收变量,可以使用匿名变量
```func GetData() (int, int) {
        return 100, 200
    }
    a, _ := GetData()
    _, b := GetData()
    fmt.Println(a, b)```
代码运行结果:
100 200

**注意:**匿名变量不占用命名空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。