理解 "ipairs" 的嵌套 for/in 循环
Understanding nested for/in loops with "ipairs"
有人可以帮助我理解这段代码吗?
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
分解后,它是这样工作的。
local dev
不是真的需要,但我想你知道它会创建局部变量 dev
。
for _, dev in ipairs(devices) do
循环索引 table devices
,并将值存储到本地 dev
。
local net
再说一次,不是真的需要。
for _, net in ipairs(dev:get_wifinets()) do
dev
使用函数 get_wifinets()
,它反过来 returns 一个索引 table,net
作为值循环。
netlist[#netlist+1] = net:id()
这对 get_wifinets()
返回的 table 中的值 net
使用 id()
函数,并将其存储为 netlist
中的最后一个元素table.
netdevs[net:id()] = dev:name()
由于我们仍然在dev
值循环的范围内,所以这需要dev
值的name()
函数并将其存储到table列出,无论是索引还是字典。
希望这有助于回答您的问题。
有人可以帮助我理解这段代码吗?
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
分解后,它是这样工作的。
local dev
不是真的需要,但我想你知道它会创建局部变量 dev
。
for _, dev in ipairs(devices) do
循环索引 table devices
,并将值存储到本地 dev
。
local net
再说一次,不是真的需要。
for _, net in ipairs(dev:get_wifinets()) do
dev
使用函数 get_wifinets()
,它反过来 returns 一个索引 table,net
作为值循环。
netlist[#netlist+1] = net:id()
这对 get_wifinets()
返回的 table 中的值 net
使用 id()
函数,并将其存储为 netlist
中的最后一个元素table.
netdevs[net:id()] = dev:name()
由于我们仍然在dev
值循环的范围内,所以这需要dev
值的name()
函数并将其存储到table列出,无论是索引还是字典。
希望这有助于回答您的问题。