枚举值作为Haxe中的参数默认值

罗恩

有没有办法enum在Haxe中使用默认参数?我收到此错误:

参数默认值应为常数

enum AnEnum {
    A;
    B;
    C;
}

class Test {
    static function main() { 
        Test.enumNotWorking();
    }
    static function enumNotWorking(e:AnEnum = AnEnum.A){}
}

尝试Haxe链接

本莫里斯

更新: 此功能已在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”。

更多信息:http : //haxe.org/manual/types-abstract-enum.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章