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

网上讲那么复杂。

相关推荐
上海合宙LuatOS10 小时前
LuatOS扩展库API——【httpplus】HTTP客户端
网络·物联网·网络协议·http·lua·luatos
上海合宙LuatOS11 小时前
LuatOS扩展库API——【 lbsLoc2】免费版单基站定位
数据库·物联网·oracle·junit·lua·luatos
上海合宙LuatOS12 小时前
LuatOS扩展库API——【httpdns】使用HTTP进行域名解析
网络·物联网·网络协议·http·lua·luatos
小同志001 天前
请求两个注解 @PathVariable + @RequestPart
开发语言·lua·请求注解
小陈的进阶之路3 天前
postman-mcp-server
测试工具·lua·postman
上海合宙LuatOS5 天前
LuatOS扩展库API——【extp】触摸控制
嵌入式硬件·物联网·lua·luatos
上海合宙LuatOS5 天前
LuatOS扩展库API——【exvib】震动检测
开发语言·物联网·lua·luatos
TechExplorer3656 天前
Postman 9.12 安装、汉化、禁用更新
测试工具·lua·postman
liulilittle6 天前
Lua 浮点数比较
开发语言·junit·lua
rannn_1116 天前
【Redis|高级篇2】多级缓存|JVM进程缓存、Lua语法、多级缓存实现(OpenResty)、缓存同步(Canal)
java·redis·分布式·后端·缓存·lua·openresty