我還在學習Ruby的基礎知識,所以我想我會嘗試做一個乘法表變量值無意中
x = (0..7).to_a
y = []
x.each { y << x }
y
現在是一個8x8的陣列,其中每一行都是平等的。這些只是我不想要的佔位符值,所以我嘗試遍歷數組索引以更改值。
x.each { |i| y[i][i] = i * i }
此時,y
成爲包含的[0, 1, 4, 9, 16, ...]
8列的陣列。我明白爲什麼我只接收平方值,但我不明白爲什麼y[1][3]
,例如,完全改變,當我只期望在指數,如[1][1]
,[2][2]
值改變。
而且,x
的值也重新分配爲[0, 1, 4, 9, 16, ...]
,即使我從未故意重新分配其值。通過上面的代碼部分,它的值會自動重新分配,我不明白爲什麼。
我總是可以自己查找另一種製作這種表格的方法,但我想了解x
導致它改變其值的原因,以及爲什麼通過索引的迭代不像預期那樣工作。我會繼續在2D數組的每個索引上進行更恰當的迭代,以便我能更好地理解爲什麼我的簡單嘗試會產生無效的輸出。我想自己解決這個相當基本的任務,但現在我已經遇到了障礙。
謝謝。這是有道理的。我會嘗試一種新方法。 – ac7v
爲該示例投票。好的。 – Anil