动态 Haxe 迭代
题
我有一个类型变量 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) { ... }
不隶属于 StackOverflow