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 .

Riferimenti



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow