コメント
このコメントは、【トピック】bは変えていないのに・・・へのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
aoihikawa(投稿日:2012/01/10 08:01/10/12)
よくある誤解認識ですね。
一見、bは「aの配列の内容」を
コピーしているようかに見えますが、
実際は、bに「aという配列」をコピーしています。
そのため、aの値が変更されると、
bの内容は「aという配列」ですので
bの内容も変更されます。
正常に動作させるためには
bも新たに配列として定義した後
1つずつ、コピーする必要があります。
一見、bは「aの配列の内容」を
コピーしているようかに見えますが、
実際は、bに「aという配列」をコピーしています。
そのため、aの値が変更されると、
bの内容は「aという配列」ですので
bの内容も変更されます。
正常に動作させるためには
bも新たに配列として定義した後
1つずつ、コピーする必要があります。
a = createArray() a[0] = "一" a[1] = "ニ" a[2] = "三" #↓ b="一","ニ","三" #b = a b = createArray() b[0] = a[0] b[1] = a[1] b[2] = a[2] z = createArray() z[0] = 0 z[1] = 2 z[2] = 1 speak("b=",b,"before") i = 0 while i < 3 c = z[i] a[i] = b[c] i = i + 1 end speak("b=",b,"after") speak("a=",a,"\nb=",b)
一見、bは「aの配列の内容」を
コピーしているようかに見えますが、
実際は、bに「aという配列」をコピーしています。
そのため、aの値が変更されると、
bの内容は「aという配列」ですので
bの内容も変更されます。
正常に動作させるためには
bも新たに配列として定義した後
1つずつ、コピーする必要があります。