map - 尝试索引一个 nil 值

标签 map lua lua-table

此处为 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] 最初是 nil。为了获得所需的结果,如果该索引尚不存在,请在该索引处创建一个表:

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 - 尝试索引一个 nil 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27470368/

相关文章:

c++ - Luabridge:返回 C++ 生命周期托管对象

Lua table.concat

java - 根据键和值对映射进行排序

map - Go:什么决定了映射键的迭代顺序?

c++ - lua用户数据按值传递

performance - 我的 Lua 表函数的效率

lua - 如何在表格内打印表格的内容? [路亚]

php - 使用键在 PHP 中进行数组映射

java - 使用动态类引用时抑制警告

lua - 从 luci web 用户界面下载文件 (openWrt Luci)