-
变量
- 使用关键字 var定义变量,自动初始化为0值。如果提供初始化值,可省略变量类型,由编译器自动推断。
- 在函数内部可以使用 := 方式定义变量
-
func main() {x := 123 }
- 可一次定义多个变量
-
var x, y, z intvar s, n = "abc", 123var (a intb float32)func main() {n, s := 0x1234, "Hello, World!"println(x, s, n)}
- _ 用于忽略值,占位。
- 编译器会将未使用的局部变量当做错误
-
常量
- 常量值必须是编译期可确定的数字,字符串,布尔值。
-
const x, y int = 1, 2 // 多常量初始化const s = "Hello, World!" // 类型推断const ( // 常量组a, b = 10, 100c bool = false)func main() {const x = "xxx" // 未使⽤用局部常量不会引发编译错误。}
- 在常量组中,如不提供类型和初始化值,那么视作与上一常量相同。
- 常量值还可以是 len、cap、unsafe.Sizeof 等编译期可确定结果的函数返回值
-
枚举
- 关键字 iota 定义常量组中从 0 开始按行计数的自增枚举值。
-
const (Sunday = iota // 0Monday // 1,通常省略后续⾏行表达式。Tuesday // 2Wednesday // 3Thursday // 4Friday // 5Saturday // 6)
- 如果 iota 自增被打断,须显式恢复。
-
const (A = iota // 0B // 1C = "c" // cD // c,与上一行相同。E = iota // 4,显式恢复。注意计数包含了 C、D 两行。F // 5)
-
基本类型