-
Notifications
You must be signed in to change notification settings - Fork 58
Open
Description
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
Gama11, RealyUniqueName, markknol, Pauan, fullofcaffeine and 22 more
Metadata
Metadata
Assignees
Labels
No labels