1

一部の JavaScript を Java に移植していますが、次の 2 行のコードを理解するのに苦労しています。

var blocks=[];
for (var z=0; z<size; z++) {
    var slice=blocks[z]=[];    //Those are the lines I don't understand.
    for (var x=0; x<size; x++) {
        var row=slice[x]=[];    //Those are the lines I don't understand.
        for (var y=0; y<size; y++) {
            row[y]=isFull(x,y,z);
        }
    }
}

最初の行は「slice」を宣言し、次に「blocks[z]」を割り当て、再び空の配列を割り当てます。

これを書いているときに、新しいデータを割り当てる前に以前の情報をクリアするためではないかと思いましたが、よくわかりません。

4

3 に答える 3

1

はい、いいえ、それは以前のデータをクリアしますが、それvarはとにかくやっていることです。重要なのは、次の行がクラッシュしないように配列を割り当てることです。

blocks =[]; // blocks is an array of zero length 'filled' with NULL values;
var slice = blocks[z]; // slize would be the same as blocks[z] so it'd be NULL
blocks[z] = []; // blocks[z] is now an zero length array filled with NULL values.

すべての割り当てコードは右から左に実行されるため、最初に配列をblocks[z]に割り当て、同じ配列をに割り当てます。var slice

など

于 2013-02-07T00:10:20.300 に答える
1

実際には空の配列が に代入され、 (空の配列)blocks[z]の値が に代入されます。blocks[z]slice

基本的に、2 つ (またはそれ以上) の変数に値を代入する簡単な方法です。

于 2013-02-07T00:01:54.573 に答える
0
x = y = z;

は次とまったく同じです:

y = z;
x = y;

その順序で。

于 2013-02-07T00:01:50.987 に答える