Lua动态生成开关状态查找表取值返回nil问题求助
问题原因
你代码的核心问题出在查表语法的使用错误,另外还有一个注释符号的小问题:
- 你定义
LookupTable时,P61、P62这类键默认是字符串类型的键,等价于["P61"] = P61v - 你查表时写的
LookupTable[P62]中,P62是未声明的变量,Lua会把它识别为nil值,用nil当键查表自然返回nil - 另外你第二块注释开头用了全角的破折号
—,Lua的注释需要用半角的减号--,部分严格环境下这个全角符号会触发语法错误
修复方案
把查表的键改为字符串形式即可,修改后的完整代码如下:
-- retrieved http.request status of 4 binary switches local P61v = 1 local P62v = 0 local P63v = 1 local P64v = 0 -- following table should allow us to look up the status of all associated light by their plug names P61, P62, P63 etc. local LookupTable = { P61 = P61v, P62 = P62v, P63 = P63v, P64 = P64v } -- 这里把P62改为字符串"P62"作为键查表 local x = LookupTable["P62"] -- 或者也可以用点语法:local x = LookupTable.P62 print(x)
修改后运行会输出预期的0值。
内容的提问来源于stack exchange,提问作者nodecentral
相关产品推荐
相关产品推荐

