lua_next

cpp 复制代码
       lua_pushnil(L);
        while(lua_next(L, -2))
        {
            // 栈状态:key : -2  value : -1
            // do something 
            lua_pop(L, 1);
        }

lua_next 先弹出一个值, 再放一对pair 到栈上, 参数 index 是表的位置

调用后: -1:value -2:key

因为会先弹出一个值,需要先pushnil ,用于弹出。

循环内 pop 后,将value弹出, 下次调用 lua_next时,将 key 弹出,再压入一对 kv

网上讲那么复杂。

相关推荐
VT LI11 小时前
Lua 源码执行流程全解析:词法分析、语法分析、字节码生成、虚拟机执行与垃圾回收
java·开发语言·lua
历程里程碑1 天前
二叉树---二叉树的中序遍历
java·大数据·开发语言·elasticsearch·链表·搜索引擎·lua
上海合宙LuatOS2 天前
LuatOS扩展库API——【exremotefile】远程文件管理系统
物联网·lua·luatos
上海合宙LuatOS2 天前
LuatOS扩展库API——【exremotecam】网络摄像头控制
开发语言·网络·物联网·lua·luatos
专吃海绵宝宝菠萝屋的派大星3 天前
使用postman测试自己编写的mcp服务
测试工具·lua·postman
一个有温度的技术博主3 天前
Lua语法详解:从变量声明到循环遍历的避坑指南
redis·缓存·lua
上海合宙LuatOS3 天前
LuatOS扩展库API——【exmodbus】MODBUS协议
物联网·lua·luatos
一个有温度的技术博主3 天前
Lua语法进阶:函数封装与条件控制的艺术
redis·分布式·缓存·lua
小李云雾4 天前
FastAPI 后端开发:文件上传 + 表单提交
开发语言·python·lua·postman·fastapi
曼巴UE54 天前
Unlua 官方案例
c++·ue5·lua·ue