变量
1.声明变量
1.1 标准格式
1.1.1 var关键字定义变量
格式
说明
变量声明以关键字 var 开头,后置变量类型,行尾无需分号
var关键字可以用于声明全局变量
var 变量名 变量类型
示例
var name string
1.2 批量格式
var (
a int
b string
c []float32
d func() bool
e struct{
x int
}
)
2.初始化变量
说明
go语言在声明变量时,自动对变量对应的内存区域进行初始化操作,每个变量会初始化其类型的默认值,例如
- 整型和浮点型变量的默认值为0
- 字符串变量的默认值为空字符串
- 布尔型变量默认值为
false - 切片、函数、指针变量默认值为
nil
2.1 标准格式
格式
var 变量名 类型 = 表达式
示例
var hp int = 100
2.2 编译器推导类型格式
格式
说明
在标准格式的基础上,将int省略后,编译器会尝试根据等括号右边的表达式推导hp变量的类型
var hp = 100
示例
var attack = 40
var damageRate float32 = 0.17
var name = xiaoming
2.3 短变量声明并初始化
var变量声明还有一种更为精简的写法,这是go语言的推导声明写法,编译器会自动根据右边表达式的值推断出相对应的类型
格式
说明
-
在函数内部,可以使用更简略的
:=方式声明并初始化变量 -
由于使用了
:=,而不是赋值的=,因此推导声明写法的左值变量必须是没有定义过的变量,若定义过,将会发生编译错误 -
短变量只能写在函数体内,不能写在包级别作用域,否则会报错
syntax error: non-declaration statement outside function body -
短变量只能用于声明局部变量,不能用于声明全局变量
变量名 := 表达式
示例
hp := 10
错误示例
package main
import "fmt"
func main() {
// 声明变量
var hp int
// 再次声明并赋值
hp := 10
fmt.Println(hp)
}
执行报错
no new variables on left side of :=