Iteração Haxe em Dinâmico
Pergunta
Eu tenho uma variável do tipo Dynamic
e eu sei com certeza um de seus campos, vamos chamá-lo a
, na verdade é uma matriz.Mas quando estou escrevendo
var d : Dynamic = getDynamic();
for (t in d.a) {
}
Recebo um erro de compilação na linha dois:
Você não pode iterar em um valor Dinâmico, especifique Iterator ou Iterable
Como posso tornar isso compilável?
Solução
Haxe não pode iterar Dynamic
variáveis (como diz o compilador).
Você pode fazer isso funcionar de várias maneiras, sendo esta provavelmente a mais fácil (dependendo da sua situação):
var d : {a:Array<Dynamic>} = getDynamic();
for (t in d.a) { ... }
Você também pode mudar Dynamic
ao tipo do conteúdo da matriz.
Outras dicas
Outra maneira de fazer o mesmo é usar uma variável temporária extra e digitação explícita:
var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow