有没有办法enum在Haxe中使用默认参数?
我收到了错误 enum
enum AnEnum {
A;
B;
C;
}
class Test {
static function main() {
Test.enumNotWorking();
}
static function enumNotWorking(e:AnEnum = AnEnum.A){}
}
Run Code Online (Sandbox Code Playgroud)
尝试haxe 链接
更新: Haxe 4 中已添加此功能。问题中的代码示例现在使用常规enum.
以前,只有当您愿意使用枚举抽象(编译时的枚举,但运行时的不同类型)时,这才是可能的:
@:enum
abstract AnEnum(Int)
{
var A = 1;
var B = 2;
var C = 3;
}
class Test3
{
static function main()
{
nowItWorks();
}
static function nowItWorks(param = AnEnum.A)
{
trace(param);
}
}
Run Code Online (Sandbox Code Playgroud)
我选择的值没有什么特别的,如果它更适合您的用例,您可以选择其他类型(字符串或更复杂的类型)。您可以将它们视为常规枚举(用于 switch 语句等),但请注意,当您在运行时跟踪它时,您将得到“1”,而不是“A”。
更多信息: http: //haxe.org/manual/types-abstract-enum.html