XU XUv0.8.8
EN

文档 / 教程

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/。