Recherche…


Syntaxe

  • identifiant enum { constructeurs }

Vue d'ensemble

Les types d'énumération de Haxe sont des types de données algébriques (ADT). Leur principale utilisation est la description des structures de données. Les enums sont désignés par le mot clé enum et contiennent un ou plusieurs constructeurs enum .

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

La énumération ci-dessus peut être instanciée comme suit:

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

Essayez l'exemple sur try.haxe.org .

Les références

Capturer des valeurs énumérées

Les valeurs passées en tant qu'arguments de constructeur enum peuvent être capturées dans des variables à l'aide de la correspondance de modèle .

Supposons l'énumération suivante:

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

La valeur du canal rouge peut être capturée comme suit:

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

Essayez l'exemple sur try.haxe.org .

Les références

Constructeurs enum correspondants

Les constructeurs Enum peuvent être mis en correspondance en utilisant la correspondance de modèle .

Supposons l'énumération suivante:

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

Les couleurs avec uniquement une valeur de canal vert peuvent être comparées comme suit:

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

Essayez l'exemple sur try.haxe.org .

Les références



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow