【发布时间】:2020-10-14 17:03:42
【问题描述】:
我做错了什么,我知道表格中的nil 有问题,但是:
local did = gwaExtractFromTopic(2)
local measurementId = gwaData.id
local newMessage = gwaData.value
local topic = gwaExtractFromTopic(2)
if did ~= nil and measurementId ~= nil then
table[did][measurementId] = newMessage
end
我得到的代码还在attempt to index a nil value (field '?')
编辑:我已经更改了源代码,但还是不行:
local measurements[did] = {}
if did and measurementId and tab[did] then
measurements[did][measurementId] = newMessage
end
【问题讨论】:
-
table是 Lua 中的“容器”类型,保留 -
更改了名称,我看到了同样的问题
-
试试看
if did and measurementId and tab[did] then ...- tab[did] 必须存在 -
@Mike V,不,
table只是一个全局变量,可以被覆盖 (lua.org/manual/5.1/manual.html#2.1)。 -
@Mike V,正确:在分配
table[did][measurementId]之前,您应该将table[did]分配给一个表。在这完成之前,table[did]为零。 @Mike V 应该将此作为答案发布。
标签: lua