捕获枚举值

作为枚举构造函数参数传递的值可以通过使用 模式匹配 捕获到变量中。

假设以下枚举:

enum Color {
    RGB(r : Int, g : Int, b : Int);
    HSV(h : Int, s : Float, v : Float);
}

可以按如下方式捕获红色通道值:

var color = Color.RGB(255, 127, 0);
var red = switch (color) {
    // Match the Color.RGB constructor and capture value into `r`
    case Color.RGB(r, _, _):
        // Return the captured red value
        r;
    // Catch-all for matching remaining constructors
    case _:
        // Return -1
        -1;
}

试试 try.haxe.org 上的例子

参考