捕獲列舉值

作為列舉建構函式引數傳遞的值可以通過使用 模式匹配 捕獲到變數中。

假設以下列舉:

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 上的例子

參考