常量和iota
func main() { const a string = "smallming" const b = 123 const c = 3*2 + 5//不要指定类型 const d = 1.5//不要指定类型 fmt.Printf("%T %T",c,d)//int float fmt.Println(c+d)//12.5 //下面这种方式是错误的 i := 3 const e = i*2 + 5 //const initializer i * 2 + 5 is not a constant }
- 当定义多个常量时官方推荐的方式
const ( a = 1 b = 2 c = true )
func main() { const ( a = 1 b c ) fmt.Println(a,b,c)//输出:1 1 1 }
常量生成器
-
当一组常量都是数值类型,可以使用常量生成器iota指定这组常量按照特定规则变化
-
iota起始值为0,每次增加1
func main() { const ( a = iota b c ) fmt.Println(a, b, c) //输出: 0 1 2 const ( d = iota << 1 e f ) fmt.Println(d, e, f) //输出:0 2 4 }
func main() { const ( a = 5 //iota=0 b = 3 //iota=1 c = iota //iota=2 d //iota=3 ) fmt.Println(a, b, c, d) //输出5 3 2 3 const ( e = iota //iota=0 f //iota=1 g = 10 //iota=2 h //iota=3 i = iota //iota=4 j //iota=5 ) fmt.Println(e, f, g, h, i, j) // 0 1 10 10 4 5 }