# 作用
iota
是一个非常有用的常量生成器关键字。它可以简化一组有规律的常量的定义过程。可以理解为是 const
块中的一个计数器
# 使用规则
iota
在 const
关键字块中使用,表示在同一个 const
块中,从第一个变量开始, iota
会从 0 自动递增。每初始化一个常量, iota
都会自动递增- 每当出现新的
const
关键字, iota
计数就会重置为 0。 iota
可以使用表达式的一部分,而不仅仅是常量的值。
# 案例
# 案例 1
1 2 3 4 5 6 7 8 9 10 11 12
| package main import "fmt" func main() { const ( A = iota B C D ) fmt.Println(A, B, C, D) }
|
# 案例 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package main
import "fmt"
func main() { const ( A = 3 B = iota C D ) fmt.Println(A, B, C, D) }
|
# 案例 3
1 2 3 4 5 6 7 8 9 10 11
| package main import "fmt" func main() { const ( A = 3 B = 4 C = iota D ) fmt.Println(A, B, C, D) }
|
# 案例 4
- 两个 const 块的结果是一致的,所以每个 const 块单独一个 iota 计数器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package main
import "fmt"
func main() { const ( A = 3 B = 4 C = iota D ) const ( W = 3 X = 4 Y = iota Z ) fmt.Println(A, B, C, D) fmt.Println(W, X, Y, Z) }
|
# 案例 5:移位运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package main
import "fmt"
func main() { const ( Open = 1 << iota Close Pending ) fmt.Println(Open, Close, Pending) }
|