Szukaj…
Składnia
- identyfikator enum { konstruktory }
Przegląd
Typy wyliczania Haxe'a to algebraiczne typy danych (ADT). Ich głównym zastosowaniem jest opisywanie struktur danych. Wyliczenia są oznaczone słowem kluczowym enum i zawierają jeden lub więcej konstruktorów wyliczania .
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
Powyższe wyliczenie można utworzyć w następujący sposób:
var c1 = Color.Red;
var c2 = Color.RGB(255, 0, 0);
Wypróbuj przykład na try.haxe.org .
Bibliografia
Przechwytywanie wartości wyliczeniowych
Wartości przekazywane jako argumenty konstruktora wyliczeniowego można przechwycić do zmiennych za pomocą dopasowania wzorca .
Załóżmy następujące wyliczenie:
enum Color {
RGB(r : Int, g : Int, b : Int);
HSV(h : Int, s : Float, v : Float);
}
Wartość czerwonego kanału można zarejestrować w następujący sposób:
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;
}
Wypróbuj przykład na try.haxe.org .
Bibliografia
Dopasowywanie konstruktorów enum
Konstruktory enum można dopasowywać za pomocą dopasowania wzorca .
Załóżmy następujące wyliczenie:
enum Color {
Red;
Green;
Blue;
RGB(r : Int, g : Int, b : Int);
}
Kolory z wartością tylko zielonego kanału można dopasować w następujący sposób:
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;
}
Wypróbuj przykład na try.haxe.org .