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
独隅3 天前
在 Lua 中,你可以使用 `os.date()` 函数轻松地将时间戳转换为格式化的时间字符串
开发语言·lua
L.EscaRC6 天前
Lua语言知识与应用解析
java·python·lua
不见长安在6 天前
redis集群下如何使用lua脚本
数据库·redis·lua
千里镜宵烛6 天前
Lua 面向对象编程完全指南:从元表到私密性,解锁灵活封装技巧
junit·单元测试·lua
千里镜宵烛6 天前
深入 Lua 环境机制:全局变量的 “容器” 与 “隔离术”
开发语言·junit·lua
l1t7 天前
利用DeepSeek采用hugeint转字符串函数完善luadbi-duckdb的decimal处理
数据库·lua·c·duckdb·deepseek
l1t8 天前
luadbi和luasql两种lua duckdb驱动的性能对比
开发语言·单元测试·lua·c·csv·duckdb
l1t8 天前
利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
c语言·数据库·单元测试·lua·duckdb
Mr. zhihao9 天前
Java 反序列化中的 boolean vs Boolean 陷阱:一个真实的 Bug 修复案例
java·bug·lua