動的での Haxe 反復
質問
型の変数があります Dynamic
そして私はそのフィールドの 1 つを確かに知っています、それをそう呼びましょう a
, 、実際には配列です。でも、書いているときは
var d : Dynamic = getDynamic();
for (t in d.a) {
}
2 行目でコンパイル エラーが発生します。
動的値を反復処理することはできません。Iterator または Iterable を指定してください
これをコンパイル可能にするにはどうすればよいですか?
解決
Haxe は反復処理できません Dynamic
変数 (コンパイラーが指示するとおり)。
これを機能させるにはいくつかの方法がありますが、これがおそらく最も簡単です (状況に応じて)。
var d : {a:Array<Dynamic>} = getDynamic();
for (t in d.a) { ... }
変更することもできます Dynamic
配列の内容の型に。
他のヒント
同じことを行う別の方法は、追加の一時変数と明示的な型付けを使用することです。
var d = getDynamic();
var a: Array<Dynamic> = d.a;
for (t in a) { ... }
所属していません StackOverflow