簡體   English   中英

在指定索引處修改Ruby數組中的元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM