30 lines
572 B
Plaintext
30 lines
572 B
Plaintext
/* ===== 模块5:复合类型 =====
|
||
* test11_enum — 枚举
|
||
* 难度:3/5
|
||
* 验证点:enum 定义、简单枚举值、带数据枚举变体
|
||
*/
|
||
#[extern("vm")] fn vm_printf(fmt: *u8, ...) void;
|
||
|
||
type Color = enum {
|
||
Red,
|
||
Green,
|
||
Blue,
|
||
}
|
||
|
||
type Expr = enum {
|
||
val: i32,
|
||
tag: Tag,
|
||
|
||
type Tag = enum {
|
||
TagA,
|
||
TagB,
|
||
TagC,
|
||
}
|
||
}
|
||
|
||
fn main() i32 {
|
||
vm_printf("enum values: %d %d %d\n", Color.Red, Color.Green, Color.Blue);
|
||
vm_printf("enum values: %d %d %d\n", Expr.Tag.TagA, Expr.Tag.TagB, Expr.Tag.TagC);
|
||
ret 0;
|
||
}
|