Suche…


Syntax

  • enum {Identifikator Konstruktoren}

Überblick

Die Aufzählungstypen von Haxe sind algebraische Datentypen (ADT). Sie dienen hauptsächlich zur Beschreibung von Datenstrukturen. Aufzählungen werden mit dem Schlüsselwort " enum und enthalten einen oder mehrere Aufzählungskonstruktoren .

enum Color {
    Red;
    Green;
    Blue;
    RGB(r : Int, g : Int, b : Int);
}

Die obige Aufzählung kann wie folgt instanziiert werden:

var c1 = Color.Red;
var c2 = Color.RGB(255, 0, 0);

Versuchen Sie das Beispiel auf try.haxe.org .

Verweise

Aufzählungswerte erfassen

Werte, die als Argumente für den Enumerationskonstruktor übergeben werden, können mithilfe von Mustervergleich in Variablen erfasst werden.

Nehmen Sie die folgende Aufzählung an:

enum Color {
    RGB(r : Int, g : Int, b : Int);
    HSV(h : Int, s : Float, v : Float);
}

Der rote Kanalwert kann wie folgt erfasst werden:

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;
}

Versuchen Sie das Beispiel auf try.haxe.org .

Verweise

Entsprechende Enum-Konstruktoren

Aufzählungskonstruktoren können mithilfe von Pattern-Matching angepasst werden.

Nehmen Sie die folgende Aufzählung an:

enum Color {
    Red;
    Green;
    Blue;
    RGB(r : Int, g : Int, b : Int);
}

Farben mit nur einem grünen Kanalwert können wie folgt angepasst werden:

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;
}

Versuchen Sie das Beispiel auf try.haxe.org .

Verweise



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow