Lua table - 当较低的索引被删除时,较高的索引全部向下移动 1 位以填补该位置
Lua table - When a lower index is removed the higher index all moved down 1 place to fill the spot
使用Lua使用的是5.1
我正在尝试获取字典 table 并将其存储在 table 中,其中我有一个键索引,值是数据,例如:
tParams = {
{1st table data...} -- this one is key index 1
{2nd table data...} -- 2nd index
...
}
我正在使用此代码存储它:
tParams[index] = i --i being a dictionary table
我可以在右边的索引中添加代码,调用时会输出table,一切正常
1 table: 0xa4a2fc0
2 table: 0x9f7c4c0
现在的问题是,如果我删除第一个索引数据,我不希望第二个索引数据移动到第一个位置,因为它是空的,它只是取代它并成为索引 1...我怎样才能避免这种情况?
或者如果您有其他一般解决方案,我想做的是存储字典 table 我正在获取的数据,如果被调用,则能够获取数据并使用它,如果我不再需要它们来删除它们。
根据创建实例的数量,可以有很多多个字典,所以我不能只预先制作它们。
它们基本上是动态的……每次它们都有一个特定的 ID,所以 2 个词典不会有相同的 ID。
如果删除了一个字典,其他字典不应移动并保持不变index/id以便它们可以被调用并成为正确的数据。
希望我说清楚了,也请不要建议任何补充模块。
谢谢!
您没有提供所有相关代码,但从 table 中删除项目的基本方法是 tParams[index] = nil
。那应该不会导致您描述的问题。
听起来您好像在使用 table.remove
。该函数用于维护正确的顺序,因此 #
operator 和一些标准库函数对其有意义。
使用Lua使用的是5.1
我正在尝试获取字典 table 并将其存储在 table 中,其中我有一个键索引,值是数据,例如:
tParams = {
{1st table data...} -- this one is key index 1
{2nd table data...} -- 2nd index
...
}
我正在使用此代码存储它:
tParams[index] = i --i being a dictionary table
我可以在右边的索引中添加代码,调用时会输出table,一切正常
1 table: 0xa4a2fc0
2 table: 0x9f7c4c0
现在的问题是,如果我删除第一个索引数据,我不希望第二个索引数据移动到第一个位置,因为它是空的,它只是取代它并成为索引 1...我怎样才能避免这种情况?
或者如果您有其他一般解决方案,我想做的是存储字典 table 我正在获取的数据,如果被调用,则能够获取数据并使用它,如果我不再需要它们来删除它们。
根据创建实例的数量,可以有很多多个字典,所以我不能只预先制作它们。 它们基本上是动态的……每次它们都有一个特定的 ID,所以 2 个词典不会有相同的 ID。
如果删除了一个字典,其他字典不应移动并保持不变index/id以便它们可以被调用并成为正确的数据。
希望我说清楚了,也请不要建议任何补充模块。
谢谢!
您没有提供所有相关代码,但从 table 中删除项目的基本方法是 tParams[index] = nil
。那应该不会导致您描述的问题。
听起来您好像在使用 table.remove
。该函数用于维护正确的顺序,因此 #
operator 和一些标准库函数对其有意义。