枚举 (enum)
枚举允许你定义一组命名的常量值。
定义枚举
const Color = enum {
red,
green,
blue,
};
使用枚举
const c = Color.red;
如果类型已知,可以省略枚举类型名称:
var c: Color = .blue;
显式整数值
可以为枚举成员指定显式整数值。
const Status = enum(u8) {
ok = 0,
bad_request = 1,
not_found = 2,
};
方法
与结构体一样,枚举也可以包含方法。
const Suit = enum {
clubs,
spades,
diamonds,
hearts,
pub fn isRed(self: Suit) bool {
return switch (self) {
.clubs, .spades => false,
.diamonds, .hearts => true,
};
}
};
is_exhaustive
默认情况下,enum 不是穷尽的(non-exhaustive),这意味着你可以添加新的字段而不破坏现有的 switch 语句(如果它们使用了 else)。但是,如果你想确保处理了所有情况,可以将其标记为穷尽的。
另请参阅:
- Switch (Switch 语句)