t={1,2,3,4,}
for k,v in pairs(t) do
--hander--
if k == 2 then
table.remove(t,k)
end
print(k,v)
end
输出:
1 1
2 2
3 4
3被跳过了
应该这样
t={1,2,3,4,}
for i=#t, 1, -1 do
--hander--
if i == 2 then
table.remove(t,i)
end
print(i,t[i])
end
输出:
4 4
3 3
2 3
1 1
没有被跳过的
本文探讨了在Lua中遍历并修改表时遇到的问题,展示了两种不同的方法及其结果。一种是在正向循环中直接使用table.remove导致元素跳过,另一种是采用逆向循环避免此问题,确保所有元素都被正确处理。
4958

被折叠的 条评论
为什么被折叠?



