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