所以,问题出在标题中。我使用'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;
}
}
标有(*)的行会抛出访问错误
答案 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