Ricerca…
Sintassi
- identificatore enum { costruttori }
Panoramica
I tipi di enumerazione di Haxe sono tipi di dati algebrici (ADT). Il loro uso principale è per descrivere strutture di dati. Le enumerazioni sono indicate dalla parola chiave enum e contengono uno o più costruttori enum .
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
L'enum di cui sopra può essere istanziato come segue:
var c1 = Color.Red;
var c2 = Color.RGB(255, 0, 0);
Prova l'esempio su try.haxe.org .
Riferimenti
Catturare valori enum
I valori passati come argomenti del costruttore enum possono essere catturati in variabili mediante l'uso della corrispondenza del modello .
Supponi il seguente enum:
enum Color {
RGB(r : Int, g : Int, b : Int);
HSV(h : Int, s : Float, v : Float);
}
Il valore del canale rosso può essere acquisito come segue:
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;
}
Prova l'esempio su try.haxe.org .
Riferimenti
Costruttori di enum corrispondenti
I costruttori Enum possono essere abbinati usando la corrispondenza del modello .
Supponi il seguente enum:
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
I colori con solo un valore di canale verde possono essere abbinati come segue:
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;
}
Prova l'esempio su try.haxe.org .