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

网上讲那么复杂。

相关推荐
想做后端的前端18 小时前
Lua的元表和元方法
开发语言·junit·lua
呆子也有梦19 小时前
思考篇:积分是存成道具还是直接存数值?——ET/Skynet 框架下,从架构权衡到代码实现全解析
游戏·架构·c#·lua
liulilittle21 小时前
Lua中检测32位序号环绕的方法
junit·单元测试·lua
历程里程碑1 天前
链表-----
数据结构·线性代数·算法·链表·矩阵·lua·perl
星空露珠1 天前
迷你世界UGC3.0脚本Wiki角色模块管理接口 Actor
开发语言·数据库·算法·游戏·lua
利来利往2 天前
【lua】loop is executed at most oncelua-analyzer(512)
lua
星空露珠2 天前
迷你世界UGC3.0脚本Wiki对象模块管理接口 GameObject
开发语言·数据库·算法·游戏·lua
或与且与或非2 天前
Redis-Lua脚本调试教程
数据库·redis·lua
星空露珠2 天前
迷你世界UGC3.0脚本Wiki生物模块管理接口 Monster
开发语言·数据结构·算法·游戏·lua
星空露珠2 天前
迷你世界UGC3.0脚本Wiki世界模块管理接口 World
开发语言·数据库·算法·游戏·lua