以下のコードにおいて、aryの中のary[1]について複製したものを二つ用意し、
片方は、前から3つ目の配列の最初の要素に10加え、
他方は、前から3つ目の配列の最初の要素に30加えたものを
それぞれary1に格納するつもりでした。
lang
1ary = [] 2ary << [Array.new(3, -1), Array.new(3, -1), Array.new(3, -1)] 3ary << [Array.new(3, 0), Array.new(3, 0), Array.new(3, 0)] 4 5ary1 = [] 6i = 1 7pass0 = ary[i].clone 8pass1 = ary[i].clone 9 10pass0[2][0] += 10 11ary1 << pass0 12 13pass1[2][0] += 30 14ary1 << pass1 15 16p ary1
出力結果が
[[[0, 0, 0], [0, 0, 0], [10, 0, 0]], [[0, 0, 0], [0, 0, 0], [30, 0, 0]]]
とならず、実際は
[[[0, 0, 0], [0, 0, 0], [40, 0, 0]], [[0, 0, 0], [0, 0, 0], [40, 0, 0]]]
となってしまいました。
上のコードにおいて、どこが不適切か教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。