2015-05-04 37 views
-1

有些身體能幫助我理解這段代碼嗎?通過「ipairs」瞭解嵌套for/in循環

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 
+2

請告訴我們您不瞭解的代碼部分以及您做了哪些部分,以便人們可以關注這些部分。 – Mat

+4

強調@Josh指出,「local dev」和「local net」語句少於不需要;他們創建未使用的變量。 'for'語句自動創建其循環控制變量。 –

回答

6

分解,它的工作原理是這樣的。

local dev 

不是真的需要,但我想象你知道它創建局部變量dev

for _, dev in ipairs(devices) do 

遍歷索引表devices,並存儲該值成dev本地。

local net 

再次,沒有真正需要。

for _, net in ipairs(dev:get_wifinets()) do 

dev使用函數get_wifinets(),這又返回的索引錶針對net循環通過作爲值。

  netlist[#netlist+1] = net:id() 

它使用id()功能從上表中的值返回netget_wifinets(),並將其存儲在netlist表中的最後一個元素。

  netdevs[net:id()] = dev:name() 

因爲我們還在dev價值循環的範圍之內,這需要的dev值,並將其存儲到上市,是否索引或字典表的name()功能。

希望這有助於回答你的問題。