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?

Foi útil?

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
scroll top