标准格式
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
**注意:**匿名变量不占用命名空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。