捕获枚举值
作为枚举构造函数参数传递的值可以通过使用 模式匹配 捕获到变量中。
假设以下枚举:
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 上的例子 。