0

假设我有。

local RockTable = {}

然后是一个 for 循环,它创建 20 个岩石并将它们存储在 RockTable 中。

如何使用table.remove(RockTable, ???)移除我想要的特定岩石。

据我了解,当您从 Lua 中的表中删除一个对象时,其余对象会向前移动以更改索引计数。

希望我解释得足够好。

任何帮助将不胜感激。

4

1 回答 1

1

每个“rock”都有一个索引,假设您将它们放在表的数组部分中,使用table.insertRockTable[#RockTable + 1]或某些类似的语法。只需将该索引传递给table.remove.

如果您想按名称访问“rocks”,则不要将它们放入表的数组部分。它们的键不应该是整数;它们应该是字符串或其他东西。有名字的东西。要“删除”它们,您只需将该值设置为nil.

--Setting the value:
RockTable["NameOfRock"] = rock;

--Removing the value:
RockTable["NameOfRock"] = nil;
于 2012-03-17T20:51:53.560 回答