08/10/15 00:47:48 ZgzCUj7J
>>811
それは代入してるのが文字ではなく配列(Arrayオブジェクト?)だからです。
A ="a","b","c"
B[0] = A[0] //A[0]は a,b,cを要素とする配列
C[0]="a"
D[0]=C[0] //C[0]はStringオブジェクト
> プリミティブかリファレンスかはよくわかりませんでした><
■プリミティブ(正確にはプリミティブデータ型)は単一のデータだけを表す型の事です。
AS3の場合Boolean型、int型、Number型、String型、uint型、void型がこれにあたり、
これ以外は全て複合データ型と呼ばれます。
■リファレンスとはその名の通り参照のことで、実際にデータをコピーすることなく同じオブジェクトを指す手法です。
var A:Array = B;
とすれば、AとBは全く同じ物となります(Aに変更を加えればBにも反映する。逆もしかり。)
C++をやっていれば
CHoge &hoge1 = hoge2;
と同等だと理解して問題ありません。(&はアドレス演算子ではありません)。
で、ここが重要なのですが、AS3では、プリミティブデータ型を除いて、全ての代入は参照で行われます。
なので冒頭のような結論となるのです。
蛇足ですが、>>807の
> プリミティブかリファレンスかを理解した方が良いと思うぞ
という表現は、代入する物がプリミティブデータ型か複合データ型により
値コピーか参照コピー(リファレンス)か変わるので、この辺りから理解せよという意味。
あとASのバージョンは明記してね。