【懒人精灵】简单的数组队列实现,从table数组中取数据,模仿redis的取后立即删除

方法一

在 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的取后立即删除

企业级大数据智能营销管理系统

源码转让