Map 尝试索引nil值

Map 尝试索引nil值,map,lua,lua-table,Map,Lua,Lua Table,这里是Lua(和编程)的初学者。我试图创建一个表,并用随机整数填充它,但我一直遇到“尝试索引一个nil值”错误。我以前忽略了定义表映射,所以当我在这里搜索时,我找到了该解决方案并添加了map={}。不幸的是,这并没有解决问题 我怀疑循环试图将随机值放入未定义的表中,这是不可能的。然后,我如何将任意数量的随机数放入表中 以下是我目前的代码: map = { } for k = 1, 20 do for l = 1, 5 do map[k][l] = math.random

这里是Lua(和编程)的初学者。我试图创建一个表,并用随机整数填充它,但我一直遇到“尝试索引一个nil值”错误。我以前忽略了定义表映射,所以当我在这里搜索时,我找到了该解决方案并添加了
map={}
。不幸的是,这并没有解决问题

我怀疑循环试图将随机值放入未定义的表中,这是不可能的。然后,我如何将任意数量的随机数放入表中

以下是我目前的代码:

map = { }

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

问题是
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

注意,您也可以通过执行
map[5*(k-1)+l]
将其填充为“平面”数组。