【问题标题】:Can't remove an item from a table (Lua)无法从表中删除项目(Lua)
【发布时间】:2021-11-23 15:45:26
【问题描述】:

所以我已经尝试解决这个问题一个多小时了,但仍然没有解决这个问题。所以我能问一个关于我目前正在处理的项目的问题,我无法从表 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'

谁能帮助我为什么会发生这种情况以及如何解决它?

【问题讨论】:

标签: lua lua-table


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-07-11
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    相关资源
    最近更新 更多