动态 Haxe 迭代

发布于 2024-07-04 13:47:48 字数 280 浏览 15 评论 0原文

我有一个Dynamic类型的变量,并且我确信它的一个字段(我们称之为a)实际上是一个数组。 但是当我编写时,

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

我在第二行收到编译错误:

您无法迭代动态值,请指定 Iterator 或 Iterable

我怎样才能使其可编译?

I have a variable of type Dynamic and I know for sure one of its fields, lets call it a, actually is an array. But when I'm writing

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

I get a compilation error on line two:

You can't iterate on a Dynamic value, please specify Iterator or Iterable

How can I make this compilable?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灯下孤影 2024-07-11 13:47:49

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

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

Another way to do the same is to use an extra temp variable and explicit typing:

var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
够运 2024-07-11 13:47:48

Haxe 无法迭代动态变量(如编译器所说)。

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

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

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

Haxe can't iterate over Dynamic variables (as the compiler says).

You can make it work in several ways, where this one is probably easiest (depending on your situation):

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

You could also change Dynamic to the type of the contents of the array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文