[英]Modifying an element in a Ruby array at a specified index?
我正在嘗試在Ruby中學習數組操作,但是在修改數組中的指定元素時遇到了問題。
對於上下文,我正在編寫一個生成Matrix的程序,然后在所述矩陣上執行操作。 矩陣定義為matix(i,j,val)
,其中i
是行數, j
是列數, val
是在實例化時填充矩陣的每個單元格的值。
矩陣存儲在由多個一維數組創建的data
變量中,如下所示:
@data = Array.new(i) { Array.new(j) {val} }
我正在嘗試編寫一個函數set(i,j,val)
,它將(i,j)
處的元素設置為val
存儲的值。 我試圖通過迭代實現這一目標:
_i = 0
@data.each do |sub|
if _i == i
sub[j] = val
end
_i += 1
end
代碼應迭代到矩陣中的第i
行並更改第j
列中的元素。 不幸的是, sub[j] = val
不會改變該值。 如何在指定的索引j
處更改數組的值?
不要過分思考這一點。 顯然你知道需要改變什么索引,所以你可以通過鏈接[]
方法直接訪問它們。 您不需要迭代單個值:
@data[i][j] = new_value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.