Donc, la question est dans le titre. J'ai déclaré certaines propriétés dans mes classes en utilisant le mot clé 'never', donc je ne peux définir les valeurs de ces propriétés qu'une seule fois, dans le constructeur. Cependant, je reçois l'erreur suivante:Les propriétés 'never' ne peuvent pas être définies à l'intérieur du pays
Impossible d'accéder à champ ou identifiant% name% pour l'écriture
Exemple du code problématique:
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;
}
}
Les lignes marquées avec (*) jeter l'erreur d'accès
_never_ décrit en détails sur l'ancienne version du site. Il contient également les exemples d'affectation d'une valeur à une propriété never-write dans le constructeur. Mais OK, peut-être que _never_ a déjà fonctionné de cette façon dans le passé http://old.haxe.org/ref/properties – Gulvan
Il suffit de lire le journal des modifications 4.0.0. Maintenant, j'ai l'hypothèse que seules les propriétés statiques sans écriture peuvent être définies dans le constructeur – Gulvan
Sur l'ancien site web, l'exemple que je vois en utilisant la propriété "never" n'écrit pas "numItems". "container.numItems" appelle "get_numItems()" dans les coulisses, mais aucune variable appelée "numItems" n'existe sur l'instance dans le code final. –