Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 ## 变量的声明 #### 使用 var 关键字(函数内外都可使用) ``` // 只声明变量不赋值需要提供变量类型,默认值为0 1. var a, b int // 字符串不能用单引号,可以不提供变量类型 2. var a, b string = "hello", "world" // 省略变量的类型,根据值自行判定变量类型。 3. var a = 10 // 同时声明多种类型的变量 4. var ( a int, b string, c bool = true, d = "hi" ) ``` 如果声明了一个变量没有赋值,则该变量默认为零值,零值就是变量没有做初始化时系统默认设置的值。 - 数值类型(包括complex64/128)为 0 - 布尔类型为 false - 字符串为 ""(空字符串) - 以下几种类型为 nil: ``` var a *int var a []int var a map[string] int var a chan int var a func(string) int var a error // error 是接口 ``` #### 使用 := 简短声明(仅函数内部可用) - 使用 := 声明变量不能提供数据类型 - := 左侧如果没有声明新的变量,就产生编译错误 ``` 1. a := 1 2. a, b := 2, "hi" // 同时声明并赋值多个变量 var intVal int intVal :=1 // 这时候会产生编译错误,因为 intVal 已经声明,不需要重新声明 ```