我希望在Ruby中获得一个二维数组,我可以像这样访问它:
问题是:我不知道数组维度的初始大小,我使用
if @array[x][y] == "1" then @array[x][y] = "0"
问题是:我不知道数组维度的初始大小,我使用
<<
操作符来扩展数组。
我如何将其声明为实例变量,以便不会出现此类错误?
undefined method `[]' for nil:NilClass (NoMethodError)
QUESTION UPDATED:
@array = Array.new {Array.new}
现在对我来说已经可以工作了,因此Matt下面的评论是正确的!
我刚刚发现我收到错误的原因是因为我像这样迭代了数组:
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] ...