Golang如何定义常量组与枚举

Go语言通过const块和iota定义常量组与枚举,iota从0开始自增,可实现如Sunday=0至Saturday=6的枚举值,支持位运算等复杂模式。

在Go语言中,常量组和枚举通过 const 关键字定义,配合 itoa 可以实现自增的枚举值。Go没有传统意义上的枚举类型,但可以通过常量组模拟。

定义常量组

使用 const 块可以将多个常量组织在一起,形成常量组:

const (
  pi = 3.14
  e = 2.718
  phi = 1.618
)

这些常量共享同一作用域,值可以是数字、字符串等基本类型。

使用 itoa 定义枚举

Go利用 itoa 实现自增值,常用于定义枚举。itoa 在 const 块中表示行索引(从0开始):

const (
  Sunday = iota
  Monday
  Tuesday
  Wednesday
  Thursday
  Friday
  Saturday
)

上面代码中,Sunday 为 0,后续名称依次递增,自动获得 1 到 6 的值。

带表达式的 iota 枚举

可以在 iota 上添加运算或位操作,实现更复杂的枚举模式:

const (
  KB = 1   MB // 1   GB // 1 )

这种写法适合定义二进制单位、标志位等场景。

基本上就这些。Go通过 const + iota 提供了简洁灵活的常量与枚举示意方式,无需额外关键字或类型声明,足够应对大多数场景。