質問

型の変数があります 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) { ... }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top