捕獲列舉值
作為列舉建構函式引數傳遞的值可以通過使用 模式匹配 捕獲到變數中。
假設以下列舉:
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 上的例子 。