[Lua] 优化列表多元素删除
在 Lua 的内置库中,table 提供了 table.remove(t,[num]) 来删除列表中的元素,因为在该函数的执行过程涉及到了内存的移动,所以在删除多个元素的时候,如果每次都调用该函数,就会造成多次内存移动。
针对这一点,对 table 进行一些删除操作上的性能优化,代码基本上是从 C# 源码中抄过来的:-D,介绍在这里,下面直接附上代码,里面注释比较清楚,有什么问题,希望能够留言指出。
local TableUtil = {
}
---从列表 t 中删除从 pos 开始的 num 个元素。
---@t 删除元素的列表
---@pos 开始删除索引
---@num 要删除元素的数量,如果没有指定,则删除 pos 之后的所有元素
function TableUtil.ClearArray(t,pos,num)
assert(t ~= nil,"The array:t is nil")
assert(pos > 0 and pos