2008-09-09 14 views
3

Ich weiß, es ist unwahrscheinlich, aber vielleicht gibt es jemanden, der Haxe Sprache kennt. Ich habe eine Variable des dynamischen Typs und ich weiß sicher eines seiner Felder, nennen wir es ein 'a' ist eigentlich ein Array. Aber wenn ich schreibeHaxe und Arrays Dynamischer Typ

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

ich einen Kompilierungsfehler auf Linie zwei, sagen: ‚Sie können nicht auf einem dynamischen Wert iterieren, bitte angeben Iterator oder Iterable‘. Wie kann ich das kompilierbar machen?

Antwort

5

haXe kann nicht über dynamische Variablen iterieren (wie der Compiler sagt).

Sie können es auf verschiedene Weise funktioniert, wo dieses wahrscheinlich am einfachsten ist (je nach Situation):

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

Sie auch auf die Art des Inhalts des Arrays Dynamische ändern könnte.

PS: yay haXe!

+0

Ist es möglich, mehrere Arten ein ein Array , wie '[0,„Zweites Element“zu verwenden, ["Verschachteltes Array hier!"], "Eine andere Saite"] '? –

3

Eine andere Möglichkeit, das gleiche zu tun, ist eine zusätzliche temporäre Variable und explizite Eingabe zu verwenden:

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