2008-09-09 21 views
3

私はそれがありそうもないと知っていますが、おそらくHaxe言語を知っている人がいます。 私はDynamic型の変数を持っていますが、そのフィールドの1つが実際に配列であることを 'a'と呼びます。私は私が言って、2行目にコンパイル・エラーが発生しますHaxeと配列ダイナミックタイプ

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

を書いているときには「あなたは動的な値に反復することができない、イテレータまたは反復処理可能を指定してください」。これをコンパイル可能にするにはどうすればよいですか?

答えて

5

haXeは動的変数に対して反復することはできません(コンパイラの説明)。

あなたはそれが(状況に応じて)この1つは、おそらく最も簡単なのであるいくつかの方法で動作させることができます:あなたはまた、配列の内容の種類を動的に変更することができ

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

PS:yay haXe!同じことを行うには

+0

は、 '[0、「第二の要素」として、アレイ複数の種類を使用することが可能であり、 ["ネストされた配列はここ!"]、 "別の文字列"] '? –

3

もう一つの方法は、余分な一時変数と明示的な型を使用することです:

var d = getDynamic(); 
var a: Array<Dynamic> = d.a; 
for (t in a) { ... } 
関連する問題