关于动态的Haxe迭代

时间:2008-09-09 12:51:05

标签: arrays for-loop loops haxe iterable

我有一个Dynamic类型的变量,我确定其中一个字段,我们称之为a,实际上是一个数组。但是当我写作时

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

我在第二行遇到了编译错误:

  

您无法迭代动态值,请指定Iterator或Iterable

如何使这个可编辑?

2 个答案:

答案 0 :(得分:5)

Haxe无法迭代Dynamic个变量(正如编译器所说)。

你可以通过多种方式使它工作,这可能是最容易的(取决于你的情况):

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

您也可以将Dynamic更改为数组内容的类型。

答案 1 :(得分:3)

另一种方法是使用额外的临时变量和显式输入:

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