Zoeken…
Syntaxis
- enum identifier { constructors }
Overzicht
Haxe's opsommingstypen zijn algebraïsche gegevenstypen (ADT). Hun primaire gebruik is voor het beschrijven van datastructuren. Enums worden aangeduid met het enum trefwoord en bevatten een of meer enum-constructors .
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
Bovenstaande opsomming kan als volgt worden gestart:
var c1 = Color.Red;
var c2 = Color.RGB(255, 0, 0);
Probeer het voorbeeld op try.haxe.org .
Referenties
Enum-waarden vastleggen
Waarden die worden doorgegeven als enum constructorargumenten kunnen worden vastgelegd in variabelen door gebruik te maken van patroonovereenkomst .
Ga uit van de volgende opsomming:
enum Color {
RGB(r : Int, g : Int, b : Int);
HSV(h : Int, s : Float, v : Float);
}
De rode kanaalwaarde kan als volgt worden vastgelegd:
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;
}
Probeer het voorbeeld op try.haxe.org .
Referenties
Bijpassende enum-constructeurs
Enum-constructors kunnen worden gematcht met behulp van patroonmatching .
Ga uit van de volgende opsomming:
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
Kleuren met alleen een groene kanaalwaarde kunnen als volgt worden gekoppeld:
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;
}
Probeer het voorbeeld op try.haxe.org .
Referenties
- "Pattern matching", Haxe-handleiding
- "Enum matching", Haxe-handleiding
- "Of patronen", Haxe-handleiding