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

网上讲那么复杂。

相关推荐
静心观复2 天前
Lua 脚本是什么
开发语言·lua
LcGero2 天前
Lua 协程(Coroutine):游戏里的“伪多线程”利器
游戏·lua·游戏开发·协程
星夜泊客2 天前
《Lua 模块化核心:require 的地址传递与缓存机制》
缓存·lua
ling__i2 天前
接口测试常见问题
开发语言·lua
LcGero3 天前
Lua 进阶:元表(Metatable)如何实现“类系统”?
lua·元表
yyk的萌3 天前
AI 应用开发工程师基础学习计划
开发语言·python·学习·ai·lua
LcGero3 天前
Lua 的灵魂:Table 如何撑起整个游戏系统?
游戏·lua
lifewange4 天前
Postman如何实现接口自动化
自动化·lua·postman
上海合宙LuatOS5 天前
LuatOS扩展库API——【 excloud】AirCloud云平台控制
物联网·lua·luatos·合宙aircloud平台
he___H5 天前
Nginx+lua+openresty
nginx·lua·openresty