动态上的 Haxe 迭代

Posted

技术标签:

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

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

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

第二行出现编译错误:

您不能对动态值进行迭代,请指定 Iterator 或 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)  ... 

【讨论】:

以上是关于动态上的 Haxe 迭代的主要内容,如果未能解决你的问题,请参考以下文章

如何在循环中获取线性图上的动态图例?

动态规划中 策略迭代 和 值迭代 的一个小例子

那些经典算法:动态规划

终于把动态规划与策略迭代值迭代讲清楚了

在动态div中打印迭代器的值

强化学习——MDPs求解之动态规划