lua - 无法从表中删除项目 (Lua)

标签 lua lua-table

所以我已经尝试解决这个问题一个多小时了,但仍然没有解决这个问题。那么我可以问一个关于我目前正在开发的项目的问题吗?我无法从表中删除项目(IDK),但请帮我解决这个问题。

表:13411d36

代码

participator = {"Zeroo#7497"}
for i, v in pairs(participator) do
    table.remove(participator, i)
end

输出

Runtime Error : org.luaj.vm2.LuaError: Zeroo#7497.lua:488: invalid key to 'next'

有人可以帮助我为什么会发生这种情况以及如何解决它吗?

最佳答案

如果 table.remove() 没有删除最后一个键/值对,则进行移位。
(如果 key 1 被移除, key 2 就会变成 key 1,依此类推)
这是成对的问题(下一个)。
更好、更快、更安全的是进行倒计时,然后让 table.remove() 删除最后一个键/值对,这是删除函数的默认值。
这不会移动 table 。
示例:

participator = {"one", "two", "three"}

for i = #participator, 1, -1 do
    print('Deleting:', i, table.remove(participator))
    print('Size:', #participator)
end

这使得...

Deleting:   3   three
Size:   2
Deleting:   2   two
Size:   1
Deleting:   1   one
Size:   0

关于lua - 无法从表中删除项目 (Lua),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69415278/

相关文章:

Lua,来自二进制值的 Ascii 字符串

Lua 表从 API 到主程序不可见

Lua - 理解 setmetatable

c++ - Lua中看起来像table的函数有哪些?

Lua 表长度函数覆盖不起作用

algorithm - 将 N 的长方体分成 M 体积的更小的长方体

escaping - Lua中如何转义变量

android - 当手指在电晕中的物体上滑动时如何找到角度

c++ - 如何使用 sol2 编写包含 lua 表的文件

xml-parsing - 使用 LuaXml 的表条目数不正确