假设我有。
local RockTable = {}
然后是一个 for 循环,它创建 20 个岩石并将它们存储在 RockTable 中。
如何使用table.remove(RockTable, ???)
移除我想要的特定岩石。
据我了解,当您从 Lua 中的表中删除一个对象时,其余对象会向前移动以更改索引计数。
希望我解释得足够好。
任何帮助将不胜感激。
每个“rock”都有一个索引,假设您将它们放在表的数组部分中,使用table.insert
或RockTable[#RockTable + 1]
或某些类似的语法。只需将该索引传递给table.remove
.
如果您想按名称访问“rocks”,则不要将它们放入表的数组部分。它们的键不应该是整数;它们应该是字符串或其他东西。有名字的东西。要“删除”它们,您只需将该值设置为nil
.
--Setting the value:
RockTable["NameOfRock"] = rock;
--Removing the value:
RockTable["NameOfRock"] = nil;