关于动态的Haxe迭代

5 arrays loops for-loop iterable haxe

我有一个类型的变量,Dynamic我肯定知道它的一个字段,让我们调用它a,实际上是一个数组.但是当我写作的时候

var d : Dynamic = getDynamic();
for (t in d.a) {
}
Run Code Online (Sandbox Code Playgroud)

我在第二行得到一个编译错误:

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

我怎样才能使这个可编辑?

小智 5

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

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

var d : {a:Array<Dynamic>} = getDynamic();
for (t in d.a) { ... }
Run Code Online (Sandbox Code Playgroud)

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