Golang常量组怎么写_Golang iota自动递增技巧说明

Go语言中iota在const块中实现自动递增,可定义枚举值。iota从0开始每行加1,支持起始值调整、跳过值(用_)及位运算组合,如const(Read=1

Go语言中,常量组结合 iota 可以实现自动递增的常量定义,非常适合定义枚举类型的值。它让代码更简洁、易维护。

基本语法:使用 iota 定义常量组

在 const 块中,iota 从 0 开始,每行自增 1。你可以利用它快速生成一组连续或有规律的常量。

const ( A = iota // 0 B // 1 C // 2 )

上面的例子中,A、B、C 的值分别为 0、1、2。只有第一行显式使用了 iota,后面行会隐式延续表达式。

跳过值或设置起始值

如果你想让枚举从 1 开始,可以加 1:

const ( Red = iota + 1 // 1 Green // 2 Blue // 3 )

也可以用下划线跳过某个值:

const ( _ = iota // 跳过 0 First Second Third ) // First=1, Second=2, Third=3

配合位运算使用(常见于标志位)

iota 常用于定义位掩码,比如权限或状态标志:

const ( Read = 1

这样每个常量对应一个独立的二进制位,便于按位组合使用,如 Read|Write 表示读写权限。

复杂表达式与重置规则

iota 在每个 const 块开始时重置为 0。你可以在表达式中灵活使用:

const ( a = iota * 2 // 0 b // 2 c // 4 )

注意:每次换行才递增,同一行多个变量不会让 iota 多次增加。

基本上就这些。iota 看似简单,但结合位运算和表达式后非常强大,是 Go 中定义枚举和标志位的惯用方式。掌握它能让代码更清晰、少出错。