有些人可以帮我理解这段代码吗?
local dev
for _, dev in ipairs(devices) do
local net
for _, net in ipairs(dev:get_wifinets()) do
netlist[#netlist+1] = net:id()
netdevs[net:id()] = dev:name()
end
end
Run Code Online (Sandbox Code Playgroud)
分解,它的工作原理如下.
local dev
Run Code Online (Sandbox Code Playgroud)
不是真的需要,但我想你知道它会创建局部变量dev.
for _, dev in ipairs(devices) do
Run Code Online (Sandbox Code Playgroud)
循环遍历索引表devices,并将值存储在dev本地.
local net
Run Code Online (Sandbox Code Playgroud)
再次,不是真的需要.
for _, net in ipairs(dev:get_wifinets()) do
Run Code Online (Sandbox Code Playgroud)
dev使用该函数get_wifinets(),该函数又返回一个索引表,net循环通过该值作为值.
netlist[#netlist+1] = net:id()
Run Code Online (Sandbox Code Playgroud)
这将使用返回的表中id()的值的函数net,get_wifinets()并将其存储为netlist表中的最后一个元素.
netdevs[net:id()] = dev:name()
Run Code Online (Sandbox Code Playgroud)
由于我们仍然在dev值循环的范围内,因此它接受值的name()函数dev并将其存储到列出的表中,无论是索引还是字典.
希望这有助于回答您的问题.