2017-11-17 21 views
1

与えられたサイズと同じ値で配列を初期化する必要があります。例えば
は、サイズとにすべての値をセットを有するINTアレイを作成します。他の言語で
Haxe - 配列のすべてのメンバーを同じ値に初期化するにはどうすればいいですか?

Int[] array = new Int[10]{0} 

それは非常に簡単だが、私はhaXeの上でこの問題を解決するかどうかはわかりません。
私を助けてください。

答えて

3

あなたは、アレイが予約されているので、私は単語「配列」を使用することはありませんArray Comprehension

var array:Array<Int> = [for (i in 0...10) 0]; 
+0

こんにちは、アンドリュー。ご回答有難うございます。それはよく簡略化されたコードのようです。しかし、for節なしの方法はありますか?よろしくお願いします。 – rener172846

+0

こんにちは、 私は別の方法を知らないが、私はしばしばそのような振る舞いを必要としません。あなたは待つことができます、新しい答えが別の方法を与えるかもしれません。 – Andrew

+0

こんにちは、あなたの解決策はちょうど今最高のものです。 haxeコードをすべてのプラットフォームに変換するには、for節がなければ不可能です。 配列の理解は最適化された構文です。 ご協力いただきありがとうございます。 – rener172846

0

使用することができ、それは多くの場合、私の代わりに「ARR」を使用し、混乱を招くのです。それは少しクリーナーで軽量ですので推測され、それを入力する必要はありません、マクロ的なアプローチは、より速く実行しますコンパイルされたコードで結果を置く

var arr = [for (i in 0...10) 0]; 

var arr = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; 

、ここで説明されている:

https://code.haxe.org/category/macros/build-arrays.html

+0

'array'という小文字のバージョンについては、' Array'が予約されていたのはなぜでしょう?その命名規則は、賢明な変数名を取り除きます。例えば、 'Sprite'インスタンスの名前をスプライトにすることはできません。さらに、古典的な意味では "予約"されているわけではありません(キーワードなどではなく、組み込み型です。必要に応じて変数に 'Array'という名前を付けることもできます)。 – Gama11

+0

'array'は予約語ではありません。 –

+0

また、milionアイテムがある場合は、マクロを使用するとコードサイズが爆発する可能性があります。配列の理解はほとんどの場合_十分であり、トラブルの価値はありません。 –

関連する問題