Sök…
Syntax
- enum identifierare { konstruktörer }
Översikt
Haxes uppräkningstyper är algebraiska datatyper (ADT). Deras främsta användning är för att beskriva datastrukturer. Enum betecknas med enum nyckelordet och innehåller en eller flera enum-konstruktörer .
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
Ovanstående enum kan inställas på följande sätt:
var c1 = Color.Red;
var c2 = Color.RGB(255, 0, 0);
Prova exemplet på try.haxe.org .
referenser
Fånga enumvärden
Värden som passeras som enum-konstruktörargument kan fångas in i variabler med hjälp av mönstermatchning .
Anta följande enum:
enum Color {
RGB(r : Int, g : Int, b : Int);
HSV(h : Int, s : Float, v : Float);
}
Det röda kanalvärdet kan fångas enligt följande:
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 exemplet på try.haxe.org .
referenser
Matchande enumkonstruktörer
Enum-konstruktörer kan matchas med hjälp av mönstermatchning .
Anta följande enum:
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
Färger med endast ett grönt kanalvärde kan matchas enligt följande:
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 exemplet på try.haxe.org .
referenser
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow