我想要一个 Ruby 中的二维数组,我可以像这样访问它:
if @array[x][y] == "1" then @array[x][y] = "0"
问题是:我不知道数组维度的初始大小,并且我增加了数组(使用<<
运算符)。
我如何将它声明为实例变量,所以我不会收到这样的错误?
undefined method `[]' for nil:NilClass (NoMethodError)
问题更新:
@array = Array.new {Array.new}
现在对我有用,所以下面马特的评论是正确的!
我刚刚发现收到错误的原因是因为我像这样遍历数组:
for i in 0..@array.length
for j in 0..@array[0].length
@array[i][j] ...
这显然是错误的并产生了错误。它必须是这样的:
for i in 0..@array.length-1
for j in 0..@array[0].length-1
@array[i][j] ...