Выражение switch в haXe обладает особенной семантикой, когда используется на перечислении. Если отсутствует default, будет произведена проверка, что все конструкторы перечисления использованы, и вы получите ошибку, если нет. Например, используя первый enum Color:
Это вызовет ошибку компиляции сообщающую, что конструктор blue не использован. В этом случае вы можете либо добавить case для этого конструктора, либо добавить default, который делает что-либо. Это может быть очень полезным, потому что когда вы добавляете новый конструктор в свой enum ошибки компилятора покажут в вашей программе места, где должны обрабатываться новые конструкторы.
===== Switch и параметры конструкторов =====
Если у конструктора enum есть параметры, они должны быть перечислены как имена переменных в объявлениях выражений case внутри switch. Таким образом все переменные будут доступны внутри выражений case в соответствии с типом параметра конструктора enum. Например, используя перечисление Color3 :
Использование switch - единственный возможный способ доступа к параметрам конструкторов.