Frage

Ich habe eine Variable vom Typ Dynamic und ich kenne mit Sicherheit eines seiner Fachgebiete, nennen wir es a, ist eigentlich ein Array.Aber wenn ich schreibe

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

Ich erhalte in Zeile zwei einen Kompilierungsfehler:

Sie können einen dynamischen Wert nicht iterieren. Geben Sie bitte „Iterator“ oder „Iterable“ an

Wie kann ich das kompilierbar machen?

War es hilfreich?

Lösung

Haxe kann nicht iterieren Dynamic Variablen (wie der Compiler sagt).

Sie können es auf verschiedene Arten zum Laufen bringen, wobei diese wahrscheinlich am einfachsten ist (abhängig von Ihrer Situation):

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

Du könntest dich auch ändern Dynamic auf den Typ des Inhalts des Arrays.

Andere Tipps

Eine andere Möglichkeit, dasselbe zu tun, besteht darin, eine zusätzliche temporäre Variable und explizite Eingabe zu verwenden:

var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top