iota 是go语言中的一个特殊常量,它的应用遵循以下五条规则,接下来将通过代码一一验证:
- 不同const 定义块互不干扰
- 所有注释行和空行全部忽略
- 没有表达式的常量定义复用上一行的表达式
- 从第一行开始,iota 从 0 逐行加一
- 替换所有 iota
1. 不同 const 定义块互不干扰
const (
a = iota
b
c
)
const (
d = iota
e
f
)
输出结果: a = 0, b = 1, c = 2; d = 0, e = 1, f = 2, 由此可见从第一行开始,iota 从 0 逐行加一,不同的 const 之间互不干扰。2. 所有注释行和空行全部忽略
const (
a = iota
//
b
c
)
输出结果为: a = 0, b = 1, c = 2, 由此可见,空行和注释并没有实际作用,可以直接忽略。
3. 没有表达式的常量定义复用上一行的表达式
const (
a = iota // iota = 0
b = 1 + iota // iota = 1
c 3 // iota = 2
)
输出: a = 0, b = 2 , c = 3 , c 复用了 b 的表达式, c = 1 + iota ,因为 iota = 2 ,所以 c = 3。