package main
import (
"fmt"
)
// 常量初始化
const (
a = "A" // 第一个常量必须显式指定表达式,a与b都为"A"
b
c, d = iota, iota // itoa从0计数,前面已有两个常量,其值为2
e, f // e、f的常量表达式为iota,其值为3
g = "B"
h = iota // h值为5
)
// 星期枚举
const (
// 第一个常量不能省略表达式
Monday = iota
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
)
// 常量命名规则
const (
// 建议,常量全部用大写字母命名
MAX_COUNT = "100"
Max_num = iota
// 在常量命名前加_或c,使常量不被外部包调用
_MAX_COUNT = "100"
cMAX_COUNT = "100"
)
func main() {
fmt.Println(a, b, c, d, e, f, g, h)
// 定义的变量或常量没有被引用,会报错
fmt.Println(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)
fmt.Println(MAX_COUNT, Max_num, _MAX_COUNT, cMAX_COUNT)
}
常量初始化规则
- 在定义常量组时,如果不提供初始值,则表示常量将使用上行的常量表达式
- 使用相同的表达式不代表具有相同的值,如iota
- 在常量命名前加_或c,使常量不被外部包调用
常量枚举
- iota是常量的计数器,从0开始,组中每定义1个常量自动递增1
- 通过初始化规则与iota,可以达到枚举的效果
- 在定义常量组时,可以使用枚举
- 每遇到一个const关键字,iota就会重置为0