如何在lua中遍歷非連續ID迭代的能力
阿新 • • 發佈:2018-12-18
問題引入
lua的強大之處,其實就是table的結構型別,它幾乎無所不能。 有時候我們要通過ID去配置一些屬性表的時候, 往往初始位置不是1. 這樣使用ipairs就無法進行有序的遍歷。所以通過lua迭代器的原理,我們拓展如下。
it檔案程式碼如下
local it = {} function it:ipairs(form) local tmp={} do for k,v in pairs(form) do table.insert( tmp,k ) end end table.sort(tmp) local i=0 return function() i=i+1 local id=tmp[i] return id,form[id] end end return it
如何使用(記得require it模組)
local example=
{
[100]="haha1"
[103]="haha2"
[104]="haha3"
}
for i,v in it:ipairs(example) do
print(i,v)
end
是不是很完美!如果困惑和遺漏歡迎指正