我有一个Dynamic
类型的变量,我确定其中一个字段,我们称之为a
,实际上是一个数组。但是当我写作时
var d : Dynamic = getDynamic();
for (t in d.a) {
}
我在第二行遇到了编译错误:
您无法迭代动态值,请指定Iterator或Iterable
如何使这个可编辑?
答案 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) { ... }