Iteración de Haxe en dinámica
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?
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