Попытка индексировать нулевое значение



Новичок в Lua (и программировании) здесь. Я пытаюсь создать таблицу и заполнить ее случайными целыми числами, но постоянно получаю ошибку "попытка проиндексировать нулевое значение". Ранее я не обращал внимания на определение табличной карты, поэтому, когда я искал здесь, я нашел это решение и добавил в map = { }. К сожалению, это не исправило проблему.



Я подозреваю, что цикл пытается поместить случайные значения в неопределенную таблицу, и что это просто невозможно. Как же я тогда буду ходить положить произвольное количество случайных чисел в таблицу?

Вот мой код до сих пор:



map = { }

for k = 1, 20 do
for l = 1, 5 do
map[k][l] = math.random(0,3)
end
end
876   2  

2 ответов:

Проблема в том, что map[k] изначально равен нулю. Чтобы получить желаемый результат, создайте таблицу с таким индексом, если он еще не существует:

map = { }

for k = 1, 20 do
    for l = 1, 5 do
        if not map[k] then
            map[k] = {}
        end
        map[k][l] = math.random(0,3)
    end
end

Я бы предложил более простую версию:

map = { }

for k = 1, 20 do
    map[k] = {}    
    for l = 1, 5 do
        map[k][l] = math.random(0,3)
    end
end

Comments

    Ничего не найдено.