文档 / 教程
08 · Enum 与 match
标签联合。构造 Color.Rgb(1, 2, 3)。match 须穷尽或带 else。owning 载荷的 match 会消费主体。
源码
@main
enum Color {
Red
Green
Rgb(int, int, int)
}
fn show(c Color) {
match c {
Color.Red {
println("red")
}
Color.Green {
println("green")
}
Color.Rgb(r, g, b) {
println(r)
println(g)
println(b)
}
}
}
fn main() int {
show(Color.Red)
show(Color.Green)
show(Color.Rgb(1, 2, 3))
<< 0
}编译(examples 仓库根,使用已安装的 xu):
xu run examples/08_enum_match/main.xu
# 或:xu build examples/08_enum_match/main.xu
# mac/linux 默认写出 ./main ;Windows 为 ./main.exe
在独立的 examples 仓库根执行;源码位于 examples/。