Iterazione Haxe su Dynamic
Domanda
Ho una variabile di tipo Dynamic
e conosco per certo uno dei suoi campi, chiamiamolo a
, in realtà è un array.Ma quando scrivo
var d : Dynamic = getDynamic();
for (t in d.a) {
}
Ottengo un errore di compilazione alla riga due:
Non è possibile eseguire l'iterazione su un valore dinamico, specificare Iterator o Iterable
Come posso renderlo compilabile?
Soluzione
Haxe non può ripetere Dynamic
variabili (come dice il compilatore).
Puoi farlo funzionare in diversi modi, dove questo è probabilmente il più semplice (a seconda della situazione):
var d : {a:Array<Dynamic>} = getDynamic();
for (t in d.a) { ... }
Potresti anche cambiare Dynamic
al tipo del contenuto dell'array.
Altri suggerimenti
Un altro modo per fare lo stesso è utilizzare una variabile temporanea aggiuntiva e una digitazione esplicita:
var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow