在Lua中,如何找出存储对象的密钥

时间:2012-03-17 20:45:02

标签: loops indexing lua lua-table

让我说我有。

local RockTable = {}

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

如何使用table.remove(RockTable, ???)删除我想要的特定摇滚。

据我所知,当你从Lua中的表中删除一个对象时,其余部分会向前移动来改变索引计数。

希望我能够很好地解释这一点。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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

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

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

--Removing the value:
RockTable["NameOfRock"] = nil;