"尝试对未定义的字段进行索引('?'字段)"

我做错了什么,我知道在表中有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

在代码中我仍然收到 尝试对未定义的字段进行索引('?'字段) 的错误信息

编辑:我已经更改了源代码,但仍然不起作用:

local measurements[did] = {}

if did and measurementId and tab[did] then
    measurements[did][measurementId] = newMessage
end
点赞
用户2858170
用户2858170
`measurements[did]` 在表 `measurements` 中索引 `did` 字段

你不能把表达式作为变量名。在提供的代码中,由于 measurements 是 nil,因此对 nil 值进行索引会导致错误。

尝试使用以下代码:

local measurements = {}

if did and measurementId then measurements[did] = {} measurements[did][measurementId] = newMessage end

```

2020-10-14 09:03:42