Buscar..
Sintaxis
- identificador de enumeración { constructores }
Visión general
Los tipos de enumeración de Haxe son tipos de datos algebraicos (ADT). Su uso principal es para describir estructuras de datos. Las enumeraciones se indican mediante la palabra clave enum y contienen uno o más constructores de enumeración .
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
La enumeración anterior se puede instanciar de la siguiente manera:
var c1 = Color.Red;
var c2 = Color.RGB(255, 0, 0);
Pruebe el ejemplo en try.haxe.org .
Referencias
Capturar valores enum
Los valores que se pasan como argumentos de constructor enum pueden capturarse en variables mediante el uso de la coincidencia de patrones .
Supongamos la siguiente enumeración:
enum Color {
RGB(r : Int, g : Int, b : Int);
HSV(h : Int, s : Float, v : Float);
}
El valor del canal rojo se puede capturar de la siguiente manera:
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;
}
Pruebe el ejemplo en try.haxe.org .
Referencias
Coincidencia de constructores de enumeración
Los constructores de enumeración pueden emparejarse utilizando la coincidencia de patrones .
Supongamos la siguiente enumeración:
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
Los colores con solo un valor de canal verde se pueden combinar de la siguiente manera:
var color = Color.RGB(0, 127, 0);
var isGreenOnly = switch (color) {
// Match Green or RGB with red and blue values at 0
case Color.RGB(0, _, 0) | Color.Green: true;
case _: false;
}
Pruebe el ejemplo en try.haxe.org .
Referencias
- "Coincidencia de patrones", manual Haxe
- "Enum de coincidencia", manual de Haxe
- "O patrones", manual de Haxe.