Question

j'ai une variable de type Dynamic et je connais avec certitude l'un de ses champs, appelons-le a, est en fait un tableau.Mais quand j'écris

var d : Dynamic = getDynamic();
for (t in d.a) {
}

J'obtiens une erreur de compilation sur la deuxième ligne :

Vous ne pouvez pas itérer sur une valeur dynamique, veuillez spécifier Iterator ou Iterable

Comment puis-je rendre cela compilable ?

Était-ce utile?

La solution

Haxe ne peut pas parcourir Dynamic variables (comme le dit le compilateur).

Vous pouvez le faire fonctionner de plusieurs manières, celle-ci étant probablement la plus simple (en fonction de votre situation) :

var d : {a:Array<Dynamic>} = getDynamic();
for (t in d.a) { ... }

Vous pourriez également changer Dynamic au type du contenu du tableau.

Autres conseils

Une autre façon de faire la même chose consiste à utiliser une variable temporaire supplémentaire et un typage explicite :

var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top