方法一
在 Lua 中,虽然没有内置的类似 Redis 队列的数据结构,但可以通过 table 和一些简单的函数来实现类似的队列功能,支持 "取一条删一条" 的操作。
-- 初始化队列
local queue = {
[1] = {
order = 1,
server = "我们约会吧",
area = "时空区",
},
[2] = {
order = 3,
server = "我们约会吧",
area = "时空区",
},
}
-- 获取并移除队列中的第一条元素
local function dequeue(q)
-- 找到最小的索引(第一条元素)
local minIndex = nil
for i, _ in pairs(q) do
if not minIndex or i < minIndex then
minIndex = i
end
end
-- 如果找到元素则返回并删除
if minIndex then
local item = q[minIndex]
q[minIndex] = nil
return item
end
return nil
end
-- 测试队列操作
print("初始队列大小:", #queue)
-- 取出第一个元素
local item1 = dequeue(queue)
if item1 then
print("取出的元素:", item1.order, item1.server, item1.area)
end
print("操作后队列大小:", #queue)
-- 取出第二个元素
local item2 = dequeue(queue)
if item2 then
print("取出的元素:", item2.order, item2.server, item2.area)
end
print("操作后队列大小:", #queue)
方法二
-- 数组形式的队列(更高效)
local queue = {
{
order = 1,
server = "我们约会吧",
area = "时空区",
},
{
order = 3,
server = "我们约会吧",
area = "时空区",
},
}
-- 获取并移除队列中的第一条元素
local function dequeue(q)
return table.remove(q, 1) -- 移除并返回第一个元素
end
这种实现方式更简单高效,因为 table.remove 在处理数组时会自动调整后续元素的索引。
如果你不需要保留原始的数字键(如 1、2),建议使用这种数组形式的队列。
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】简单的数组队列实现,从table数组中取数据,模仿redis的取后立即删除
飞云脚本圈: 586333520

Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】简单的数组队列实现,从table数组中取数据,模仿redis的取后立即删除