- 依靠编译器完成自增
const (
a = iota // a = 0
b // b = 1
c // c = 2
)
- 利用只写变量
_
跳过自增
const (
a = iota // a = 0
b // b = 1
_
_
c // c = 4
)
- 可以插入其他常量,且不影响iota自增
const (
a = iota // a = 0
b = "b" // b = "b"
c = iota //c = 2
d // d = 3
)
- 如果定义在同一行
const (
a, b = iota , iota + 1
c, d
e, f
)
// a = 0, b = 1, c = 2, d = 3, e = 4, f = 5
- 定义位掩码表达式
const (
a = 1 << iota // 1 << 0 结果为 00000001
b // 1 << 1 结果为 00000010
c // 1 << 2 结果为 00000100
d // 1 << 3 结果为 00001000
e // 1 << 4 结果为 00010000
)
- 定义数量级
type ByteSize float64
const (
_ = iota // 跳过 0
KB ByteSize = 1 << (10 * iota) // 1 << (10*1)
MB // 1 << (10*2)
GB // 1 << (10*3)
TB // 1 << (10*4)
PB // 1 << (10*5)
EB // 1 << (10*6)
ZB // 1 << (10*7)
YB // 1 << (10*8)
)
以上内容均源于网络,并加上自己的实践和理解,如有错误的地方,请在评论区指正。
有疑问加站长微信联系(非本文作者)