【发布时间】:2021-05-14 12:33:40
【问题描述】:
我有以下 lua 代码,可以打印出设备的 Mac 地址。
local sc = Command.Scan.create()
local devices = sc:scan()
local topicMac
local list = {}
for _,device in pairs(devices) do
print(device:getMACAddress())
list[device] = device:getMACAddress()
end
topicMac = list[0]
print(topicMac)
由于有多个地址并且它们都列在一个表中,我想只将第一个地址保存到局部变量“topicMac”中。我尝试通过在数组中添加第一个索引(0 或 1)来达到第一个值。
为什么我会得到nil 作为回报?
【问题讨论】:
-
都使用 0 或 1,在控制台上结果为“nil”
-
如果你想在本地上下文之外访问一个变量,不要声明它
local。 -
即使没有在本地声明,返回也是“nil”
-
你还需要整个
list,还是可以扔掉除了第一个项目之外的所有东西?如果您不需要整个list,@Senor 的答案是正确的。 -
这里缺少很多信息:
devices是什么样的?什么是你的“第一个”MAC 地址,或者你只是想要列表中的 any mac 地址?如果您只想要第一个地址,为什么首先需要一个列表?