【问题标题】:Haxe iteration on Dynamic动态上的 Haxe 迭代
【发布时间】:2010-09-08 06:48:11
【问题描述】:

我有一个Dynamic 类型的变量,我肯定知道它的一个字段,我们称之为a,实际上是一个数组。但是当我写的时候

var d : Dynamic = getDynamic();
for (t in d.a) {
}

第二行出现编译错误:

您不能对动态值进行迭代,请指定 Iterator 或 Iterable

我怎样才能使它可编译?

【问题讨论】:

    标签: arrays for-loop loops haxe iterable


    【解决方案1】:

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

    您可以通过多种方式使其工作,其中一种可能是最简单的(取决于您的情况):

    var d : {a:Array<Dynamic>} = getDynamic();
    for (t in d.a) { ... }
    

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

    【讨论】:

    • 一个Array是否可以使用多种类型,比如[0, "Second element", ["Nested array here!"], "another string"]
    【解决方案2】:

    另一种方法是使用额外的临时变量和显式类型:

    var d = getDynamic();
    var a: Array<Dynamic> = d.a;
    for (t in a) { ... }
    

    【讨论】:

      猜你喜欢
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多