Как объявить двумерный массив в Ruby

Мне нужен двумерный массив в 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] ...
7
задан kadrian 18 July 2015 в 23:48
поделиться