首页 > 编程笔记 > Go语言笔记 阅读:9

Golang枚举的具体实现(附带实例)

在 Go 语言中,没有直接提供枚举类型的内置支持,没有 enum 关键字,需要使用 const 关键字和 iota 常量生成器定义枚举。

iota 常量生成器用于生成一组以相似规则初始化的常量,使用 const 关键字和 iota 常量生成器定义枚举的语法格式如下:
const(
    identifier1 type = iota
    identifier2
    identifier3
    …
)
使用 const 关键字和 iota 常量生成器定义枚举,其中 identifier1 对应的值为 0。

下面演示如何使用 const 关键字和 iota 常量生成器定义枚举。代码如下:
package main

import (
    "fmt"
)

func main(){
    const(
        identifier1 int = iota
        identifier2
        identifier3
    )
    fmt.Println("identifier1 =", identifier1, "identifier2 =", identifier2, "identifier3 =", identifier3)
}
运行结果如下:

identifier1 = 0
identifier2 = 1
identifier3 = 2


使用 const 关键字和 iota 常量生成器不仅可以生成每次增加1的枚举值,还可以实现枚举常量值生成器。实现枚举常量值生成器的代码如下:
package main

import (
    "fmt"
)

func main(){
    const(
        B = 1 << (10 * iota)
        KB
        MB
    )
    fmt.Println("1B =", B, "B\n1KB =", KB, "B\n1MB =", MB, "B")
}
运行结果如下:

1B = 1 B
1KB = 1024 B
1MB = 1048576 B

相关文章