0

在包含 iota 的 Go 枚举中,如何强制一些值,而自动递增其他值?

例如,在这个源代码中,

const (
    SUCCESS         int = iota
    ERROR_UNKNOWN       = 3
    ERROR_ARGS
    NOFILES             = 50
    ERROR_OPEN_FILE
    ERROR_BADFILENAME
)

ERROR_ARGS= ERROR_UNKNOWN,我期望它在哪里ERROR_UNKNOWN + 1

有没有办法在没有_方法的情况下实现混合自动增量和“强制”值,这对于像这里这样的大间隙很麻烦(4到50,插入46_行......)

在下面的第一个答案后澄清:值必须始终“向前”,即使在强制值之后也会自动递增。

4

1 回答 1

2

无法ERROR_ARGS = ERROR_UNKNOWN + 1通过 iota 设置,您可以将自动增量与手动值混合,如下所示:

const (
    SUCCESS         int = iota
    ERROR_UNKNOWN       = 3
    ERROR_ARGS          = iota
    NOFILES             = 50
    ERROR_OPEN_FILE     = iota
    ERROR_BADFILENAME
)

值将是:

0
3
2
50
4
5
于 2021-12-31T10:45:20.530 回答