5

我有一个类型的变量,Dynamic我肯定知道它的一个字段,我们称之为它a,实际上是一个数组。但是当我写

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

我在第二行收到编译错误:

您不能迭代动态值,请指定 Iterator 或 Iterable

我怎样才能使它可编译?

4

2 回答 2

5

Haxe 不能迭代Dynamic变量(正如编译器所说)。

您可以通过多种方式使其工作,其中这一种可能是最简单的(取决于您的情况):

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

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

于 2008-09-09T13:00:59.407 回答
3

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

var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
于 2008-09-15T21:17:42.347 回答