有没有办法计算枚举中定义的项目总数?

wiz*_*gic 3 go

我正在尝试计算 Go 中枚举 (iota) 中定义的项目数量,但我不确定如何执行此操作。

roc*_*a2q 9

例如,ILenXLen

package main

import "fmt"

const (
    I1 = 1 << iota
    I2
    I3
    ILen int = iota
)

const (
    X1       = "A"
    X2       = "B"
    X3       = "C"
    XLen int = iota
)

func main() {
    fmt.Println(I1, I2, I3, ILen)
    fmt.Println(X1, X2, X3, XLen)
}
Run Code Online (Sandbox Code Playgroud)

https://go.dev/play/p/krBVid3jLNq

1 2 4 3
A B C 3
Run Code Online (Sandbox Code Playgroud)

Go 编程语言规范

伊奥塔

在常量声明中,预声明的标识符iota表示连续的无类型整型常量。它的值是该常量声明中相应 ConstSpec 的索引,从零开始。