Параметры конструкторов enum

Предыдущий пример Color показывает три константных конструктора для перечисления. Кроме этого, можно задавать конструкторам параметры :

    enum Color2 {
        red;
        green;
        blue;
        grey( v : Int );
        rgb( r : Int, g : Int, b : Int );
    }
</div>

В этом подходе, может быть бесконечное количество возможных вариантов Color2, но есть пять разных конструкторов которые могут быть использованы для этого. Следующие значения все являются допустимыми примерами значений Color2 :

    var c1:Color2 = red;
    var c2:Color2 = green;
    var c3:Color2 = blue;
    var c4:Color2 = grey(0);
    var c5:Color2 = grey(128);
    var c6:Color2 = rgb( 0x00, 0x12, 0x23 );
    var c7:Color2 = rgb( 0xFF, 0xAA, 0xBB );
</div>

Также мы можем получить рекурсивный тип, например, чтобы добавить alpha :

    enum Color3 {
        red;
        green;
        blue;
        grey( v : Int );
        rgb( r : Int, g : Int, b : Int );
        alpha( a : Int, col : Color3 );
    }
</div>

Ниже показаны допустимые примеры значений Color3 :

    var c1:Color3 = alpha( 127, red );
    var c2:Color3 = alpha( 255, rgb(0,0,0) );
</div>