如何在Lua中找出对象存储在哪个键中

假设我有以下代码:

local RockTable = {}

并且有一个for循环生成20个石头并将它们存储在RockTable中。

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

据我所知,当在Lua中从表中删除对象时,其余对象会向前移动,从而更改索引计数。

希望我解释得足够清楚。

非常感谢您的任何帮助。

原文链接 https://stackoverflow.com/questions/9753567

点赞
stackoverflow用户734069
stackoverflow用户734069

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

如果你想通过名称访问“rock”,那么你不应该把它们放到表的数组部分中。它们的键不应该是整数,而应该是字符串或者其他的命名。要“移除”它们,你只需要将它们的值设置为 nil

--设置该值:
RockTable [“NameOfRock”] = rock;

--移除该值:
RockTable [“NameOfRock”] = nil;
2012-03-17 20:51:53