E4153#
在带有自定义标记值的 enum 中重复标记
对于所有构造器都没有参数的常量 enum,MoonBit 支持自定义枚举构造器的整数表示:
enum Flag {
A = 1
B = 2
C = 3
}
然而,枚举的每个构造器的值必须是唯一的,否则编译器就会产生本错误。
错误示例#
enum Bad {
A = 1
B // `B` 的值是 `A + 1 = 2`
C = 2 // 和 `B` 冲突
}
建议#
为每个构造器使用唯一的标记值:
pub enum Good {
A = 1
B
C = 3
}
pub fn all() -> (Good, Good, Good) {
(A, B, C)
}