1

Actionscript は、ループfor...inを提供して、キーを介して反復される要素を参照します。

しかし、for...each...inループは、反復されるコレクション内の元の要素への参照ではなく、要素のコピーを生成します。それへの参照を取得する方法はありますか、またはfor...inに頼る必要がありますか?

仮説を考えてみましょう:

for each( var &iter:* in collection )

actionscript にはそのような逆参照演算子がないことは知っていますが、他の方法でここで参照を取得できますか?

PS : Adob​​e のドキュメントには次のように記載されています。

variableIterant:* — コレクション内のアイテムを参照する反復子として機能する変数の名前。

ただし、参照ではなく値によるコピーです。

4

1 に答える 1

5

しかし、for...each...in ループは、反復されるコレクション内の元の要素への参照ではなく、要素のコピーを生成します。

ええと...いいえ、そうではありません。それ以外の場合、このテストは次のようになり0 0ます。

var a:Shape = new Shape();
var b:Shape = new Shape();
var list:Array = [a,b];

for each(var i:Shape in list) i.x = 10;

trace(a.x, b.x); // 10 10
于 2013-07-07T23:33:43.870 に答える