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

网上讲那么复杂。

相关推荐
l1t1 天前
利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
c语言·数据库·单元测试·lua·duckdb
Mr. zhihao2 天前
Java 反序列化中的 boolean vs Boolean 陷阱:一个真实的 Bug 修复案例
java·bug·lua
ellis19702 天前
Lua代码混淆-Prometheus方案教程
unity·lua
烛阴2 天前
从create到yield:Lua协程完全上手指南
前端·lua
利来利往3 天前
lua table.remove引发的偶现bug
bug·lua·table.remove
初见无风3 天前
3.1 Lua代码中的元表与元方法
开发语言·lua·lua5.4
千里镜宵烛3 天前
Lua--数据文件和持久性
开发语言·junit·lua
壹佰大多4 天前
【Redisson分布式锁源码分析-3】
数据结构·分布式·mysql·spring·spring cloud·wpf·lua
l1t4 天前
对luasql-duckdb PR的测试
c语言·数据库·单元测试·lua·duckdb
初见无风4 天前
3.3 Lua代码中的协程
开发语言·lua·lua5.4