2008-09-09 7 views
3

Je sais que c'est peu probable mais peut-être qu'il y a quelqu'un qui connaît la langue Haxe. J'ai une variable de type dynamique et je sais avec certitude un de ses champs, appelons-le un 'a' est en fait un tableau. Mais quand j'écrisHaxe et tableaux Type dynamique

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

Je reçois une erreur de compilation en ligne deux, en disant: « Vous ne pouvez pas itérer sur une valeur dynamique, s'il vous plaît préciser Iterator ou Iterable ». Comment puis-je rendre cela compilable?

Répondre

5

haXe ne peut pas parcourir les variables dynamiques (comme le dit le compilateur).

Vous pouvez le faire fonctionner de plusieurs façons, où celui-ci est probablement plus facile (en fonction de votre situation):

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

Vous pouvez également changer dynamique du type du contenu du tableau.

PS: yay haXe!

+0

Est-il possible d'utiliser plusieurs types d'un tableau , comme '[0, « Second élément », ["Nested array here!"], "Une autre chaîne"] '? –

3

Une autre façon de faire la même chose est d'utiliser une variable temporaire supplémentaire et frappe explicite:

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