Haxe和数组动态类型
时间:2020-03-05 18:50:01 来源:igfitidea点击:
我知道这不太可能,但是也许有人会懂Haxe语言。
我有一个动态类型的变量,我肯定知道它的一个字段,让我们称它为" a"实际上是一个数组。但是当我写的时候
var d : Dynamic = getDynamic(); for (t in d.a) { }
我在第二行收到一个编译错误,说"我们不能对Dynamic值进行迭代,请指定Iterator或者Iterable"。如何使它可编译?
解决方案
回答
haXe无法遍历动态变量(如编译器所说)。
我们可以通过多种方式使它工作,而这可能是最简单的(取决于情况):
var d : {a:Array<Dynamic>} = getDynamic(); for(t in d.a) { ... }
我们也可以将Dynamic更改为数组内容的类型。
PS:是的!
回答
另一种方法是使用额外的temp变量和显式键入:
var d = getDynamic(); var a: Array<Dynamic> = d.a; for (t in a) { ... }