在lua中,table移除元素出現的問題:
說明:一般我們不在迴圈中刪除,在迴圈中刪除會造成一些錯誤。
for i=
#test,1
,-1do
if remove
[test[i
]]then
table.remove
(test,i
)end
end
為什麼不從前往後,因為table.remove操作後,後面的元素會往前移位,這時候後續的刪除索引對應的元素已經不是之前的索引對應的元素了。
locali=
1while
i<=
#test
doif
remove
[test[i
]]then
table.remove
(test,i
)elsei=
i+1end
end
Lua table中安全移除元素的方法
在lua中,table如何安全的移除元素這點挺重要,因為如果不小心,會沒有正確的移除,造成記憶體洩漏。引子比如有些朋友常常這麼做,大家看有啥問題 將test表中的偶數移除掉 複製 如下 local test for i,v in ipairs test do if v 2 0 then table....
Lua table的常用操作 拼接 插入 刪除
mytable 拼接 concat table.concat mytable 無縫拼接 table.concat mytable,指定字元分割拼接 table.concat mytable,1,3 指定字元,指定索引拼接 插入 mytable獲得表的長度 print mytable 用賦值的方式在末...
lua table 重要函式
1 求長度操作 a a 3 給table新增元素a a 1 d 2 table.concat table,sep,start,end 講從start開始到end的元素以sep作為分隔符鏈結成乙個整體 例 tbl print table.concat tbl,alpha beta gamma 3 ta...