我有一个类型变量 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) { ... }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top