常量与枚举
约 325 字大约 1 分钟
2026-03-24
常量
常量使用 const 关键字声明,必须在声明确定值,且不能被修改。常量通常使用全大写进行命名
func main() {
const PI = 3.14159
println(PI)
}枚举
Go 没有内置的枚举类型,但是可以通过 const 与 iota 来进行模拟。iota 是一个特殊的常量生成器,在每个 const 块中从 0 开始自动递增
func main() {
const (
RED = "red"
GREEN = "green"
BLUE = "blue"
)
}提示
iota 只能在 const 块中使用
iota 会按照 "行递增",同一行的多个常量会共享同一个 iota 值,直到下一行才会递增。且 iota 可以搭配表达式使用,未显式赋值的常量会自动使用上一行的表达式,并将 iota 的值代入
func main() {
/**
* D 的值为 3,因为 iota 在每行递增,即便 C 的值被显式设置为 7,D 的值依然会继续递增到 3
*/
const (
A = iota
B
C = 7
D = iota
)
/**
* 第一行 iota 的值为 0,因此 ss 的值为 1,mm 的值为 2
* 第二行 iota 的值为 1,因此 cc 的值为 2,dd 的值为 3
* 第三行 iota 的值为 2,因此 ff 的值为 3,nn 的值为 4
*/
const (
ss, mm = iota + 1, iota + 2
cc, dd
ff, nn
)
}