'never'属性不能在counstructor中设置

时间:2017-10-12 16:33:28

标签: properties haxe

所以,问题出在标题中。我使用'never'关键字在我的类中声明了一些属性,因此我可以在构造函数中仅设置这些属性的值一次。但是,我收到以下错误:

无法访问字段或标识符%name%以进行编写

有问题的代码示例:

class TreeAbility
{

        public var id(default, never):String;
        public var maxLvl(default, never):Int;

        public function new(id:String, maxLvl:Int) 
        {
            Assert.assert(maxLvl > 0);

            this.id = id; (*)
            this.maxLvl = maxLvl; (*)
            this.currentLvl = 0;
        }

}

标有(*)的行会抛出访问错误

1 个答案:

答案 0 :(得分:3)

我相信 never write属性意味着永远不允许写入/设置变量,即使在构造函数中也是如此。请参阅:https://haxe.org/manual/class-field-property.html

也许您正在寻找Haxe 4中的 final 关键字。对于实例字段,它只允许从类构造函数赋值给变量。已确认:https://haxe.org/download/version/4.0.0-preview.2/https://github.com/HaxeFoundation/haxe/issues/6584