I was surprised to find that while
enum Schedule {
Hourly(?minute:Int);
// ...
}
is possible, this is not:
enum Schedule {
Hourly(minute:Int=1); // characters 18-19 : Unexpected =
// ...
}
Right now I have to do additional null-checks on enums with optional parameters like so
var instance = new MyClass(Schedule.Hourly());
function MyClass {
var schedule:Schedule;
public function new(var schedule:Schedule){
// validate schedule
switch (schedule) {
case Hourly(minute):
// check for null and apply a default value if found
if(minute == null) {
minute = 1;
schedule = Schedule.Hourly(minute);
} else if (minute < 0 || minute > 59)
throw "Hourly.Minute must be >= 0 and < 60";
}
// ...
}
this.schedule = schedule;
}
}
instead of simply:
var instance = new MyClass(Schedule.Hourly());
function MyClass {
var schedule:Schedule;
public function new(var schedule:Schedule) {
// validate schedule
switch (schedule) {
case Hourly(minute):
if (minute < 0 || minute > 59)
throw "Hourly.Minute must be >= 0 and < 60";
// ...
}
this.schedule = schedule;
}
}
Therefore I would request adding default value behaviour for enums as specified here https://haxe.org/manual/types-function-default-values.html
I was surprised to find that while
is possible, this is not:
Right now I have to do additional null-checks on enums with optional parameters like so
instead of simply:
Therefore I would request adding default value behaviour for enums as specified here https://haxe.org/manual/types-function-default-values.html