简体   繁体   中英

Haxe iteration on Dynamic

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?

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.

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) { ... }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM