Pregunta

tengo una variable de tipo Dynamic y conozco con seguridad uno de sus campos, llamémoslo a, en realidad es una matriz.Pero cuando estoy escribiendo

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

Recibo un error de compilación en la línea dos:

No puede iterar sobre un valor dinámico; especifique Iterador o Iterable

¿Cómo puedo hacer esto compilable?

¿Fue útil?

Solución

Haxe no puede iterar Dynamic variables (como dice el compilador).

Puede hacer que funcione de varias maneras, siendo esta probablemente la más fácil (dependiendo de su situación):

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

También podrías cambiar Dynamic al tipo de contenido de la matriz.

Otros consejos

Otra forma de hacer lo mismo es utilizar una variable temporal adicional y escribir de forma explícita:

var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top