iota有三种重置方式:①用_ = iota跳过当前值;②显式赋值(如Deleted = 100)重启计数;③另起const块自然归零。
当需要跳过某个枚举位置(比如预留、弃用或占位),直接写 _ = iota 即可。它会消耗一次 iota 递增,但不绑定任何名称,后续常量继续按新值计数。
例如:
const (
_ = iota // 跳过 0
Jan // Jan = 1
Feb // Feb = 2
)
在断档处手动指定一个值(如 Start = 100),之后的无赋值常量会延续该起始值自动递增,相当于人为“重启”计数逻辑。
例如:
const (
Unknown = iota // 0
Active // 1
_ // 2,跳过
Deleted = 100 // 显式设为 100
Archived // 101
 >Pending // 102
)
iota 每次遇到新的 const 关键字都会自动归零。这是最清晰、最无副作

例如:
const (
ModeRead = 1 // 1
 >ModeWrite // 2
)
const (
StatusOK = iota // 0(新块,iota 重置)
StatusErr // 1
)