Попытка индексировать нулевое значение
Новичок в Lua (и программировании) здесь. Я пытаюсь создать таблицу и заполнить ее случайными целыми числами, но постоянно получаю ошибку "попытка проиндексировать нулевое значение". Ранее я не обращал внимания на определение табличной карты, поэтому, когда я искал здесь, я нашел это решение и добавил в map = { }. К сожалению, это не исправило проблему.
Я подозреваю, что цикл пытается поместить случайные значения в неопределенную таблицу, и что это просто невозможно. Как же я тогда буду ходить положить произвольное количество случайных чисел в таблицу?
Вот мой код до сих пор:
map = { }
for k = 1, 20 do
for l = 1, 5 do
map[k][l] = math.random(0,3)
end
end
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