文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Iota
在常量声明中,预定义的标识符 iota
表示连续的无类型整型常量。它的值为常量声明中每个常量定义的位置(从零开始)。它能够用来生成一个关联常量集合:
const ( // iota is reset to 0
c0 = iota // c0 == 0
c1 = iota // c1 == 1
c2 = iota // c2 == 2
)
const ( // iota is reset to 0
a = 1 << iota // a == 1
b = 1 << iota // b == 2
c = 3 // c == 3 (没有使用 iota 不过它的值依然递增)
d = 1 << iota // d == 8
)
const ( // iota is reset to 0
u = iota * 42 // u == 0 (无类型整型常量)
v float64 = iota * 42 // v == 42.0 (float64 类型常量)
w = iota * 42 // w == 84 (无类型整型常量)
)
const x = iota // x == 0 (iota 被重置)
const y = iota // y == 0 (iota 被重置)
根据定义,在同一个常量定义中多次使用 iota
会得到相同的值:
const (
bit0, mask0 = 1 << iota, 1<<iota - 1 // bit0 == 1, mask0 == 0 (iota == 0)
bit1, mask1 // bit1 == 2, mask1 == 1 (iota == 1)
_, _ // (iota == 2, unused)
bit3, mask3 // bit3 == 8, mask3 == 7 (iota == 3)
)
最后一个例子利用了最后一个非空表达式列表的隐式重复。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论