1const a int = 100
2const b int = a + 10
3
4func main() {
5 fmt.Println(a + b)
6}
1type myInt int
2
3const a myInt = 100
4const b int = a + 10 // 编译报错:cannot use a + 10 (constant 110 of type myInt) as int value in constant
5const b int = int(a) + 10 // ok
1type myInt int
2const a myInt = 100
3// 无类型常量,可以编译
4const n = 7
5const b myInt = a + n
1// 枚举
2const (
3 MONDAY = 1
4 TUESDAY = 2
5 WEDNESDAY = 3
6)
1const (
2 MONDAY = 1
3 TUESDAY
4 WEDNESDAY
5)
1const (
2 MONDAY = 1 + iota
3 TUESDAY
4 WEDNESDAY
5)
1const (
2 MONDAY = 1 + 0
3 TUESDAY = 1 + 1
4 WEDNESDAY = 1 + 2
5)
1const (
2 MONDAY = 1 + iota
3 - // iota == 1被跳过了
4 TUESDAY // 3
5 WEDNESDAY // 4
6)
1const (
2 MONDAY = 1 + iota + iota + iota // 这三个iota都是0
3 - // iota == 1被跳过了
4 TUESDAY // 3
5 WEDNESDAY // 4
6)
1const (
2 SUNDAY = 1 + iota
3 MONDAY
4 TUESDAY
5 WEDNESDAY
6)