我有一个类型的变量,Dynamic
我肯定知道它的一个字段,我们称之为它a
,实际上是一个数组。但是当我写
var d : Dynamic = getDynamic();
for (t in d.a) {
}
我在第二行收到编译错误:
您不能迭代动态值,请指定 Iterator 或 Iterable
我怎样才能使它可编译?
Haxe 不能迭代Dynamic
变量(正如编译器所说)。
您可以通过多种方式使其工作,其中这一种可能是最简单的(取决于您的情况):
var d : {a:Array<Dynamic>} = getDynamic();
for (t in d.a) { ... }
您还可以更改Dynamic
为数组内容的类型。
另一种方法是使用额外的临时变量和显式类型:
var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }