Lua - 动态生成查找表及值

我正在尝试创建一个表,动态地填充了一组开关的开/关状态。以下是我的代码,但它总是返回 nothing/nil ...

-- 检索 4 个二进制开关的 http.request 状态
local P61v = 1
local P62v = 0
local P63v = 1
local P64v = 0

-- 以下表应允许我们通过插头名称 P61、P62、P63 等查找所有关联电灯的状态。

local LookupTable = {
    P61 = P61v,
    P62 = P62v,
    P63 = P63v,
    P64 = P64v
}
local x = LookupTable[P62]
print(x)

原文链接 https://stackoverflow.com/questions/70207637

点赞
stackoverflow用户2505965
stackoverflow用户2505965

LookupTable[P62]中,表达式P62被评估为nil,导致LookupTable[nil]被解析为nil

你要找的是以下两种等效的表达方式:

LookupTable.P62
-- 或者 ---
LookupTable['P62']

2021-12-02 23:26:17
stackoverflow用户6676439
stackoverflow用户6676439

我创建了一个脚本,定义了这两个值,最终代码如下:

local PowerResponse = "P61=0,P62=1,P63=0,P64=0"
local P61, _, P61v, P62, _, P62v, P63, _, P63v, P64, _, P64v = PowerResponse:match("(%w*)(=)(%d),(%w*)(=)(%d),(%w*)(=)(%d),(%w*)(=)(%d)")
local PowerStatusTable = {
        P61 = P61v,
        P62 = P62v,
        P63 = P63v,
        P64 = P64v
        }
--local x = PowerStatusTable[P62]
for k, v in pairs(PowerStatusTable) do
    luup.variable_set("urn:upnp-net:serviceId:IPPower1", k, v,deviceID)
end
2021-12-05 10:26:34