有没有办法enum
在Haxe中使用默认参数?我收到此错误:
参数默认值应为常数
enum AnEnum {
A;
B;
C;
}
class Test {
static function main() {
Test.enumNotWorking();
}
static function enumNotWorking(e:AnEnum = AnEnum.A){}
}
更新: 此功能已在Haxe 4中添加。问题的代码示例现在可以使用Regular进行原样编译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);
}
}
我选择的值没有什么特别的,并且如果它更适合您的用例,则可以选择其他类型(字符串,或更复杂的类型)。您可以像对待常规枚举(对于switch语句等)一样对待它们,但是请注意,当在运行时对其进行跟踪时,将得到“ 1”,而不是“ A”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句