博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lua C API 遍历 table
阅读量:6976 次
发布时间:2019-06-27

本文共 505 字,大约阅读时间需要 1 分钟。

 

http://timothyqiu.com/archives/lua-note-table-traversal-using-c-api/

 

C API 遍历 Table

1 lua_getglobal(L, t);2 int index = lua_gettop(L);3 lua_pushnil(L);4 while (lua_next(L, index)) {5     /* 此时栈上 -1 处为 value, -2 处为 key */6     lua_pop(L, 1);7 }

 

lua_next 函数针对 -2 处(参数指定)的 Table 进行遍历。弹出 -1 处(栈顶)的值作为上一个 key(为 nil 时视为请求首个 key),压入 Table 中的下一个 key 和 value。返回值表示是否存在下一个 key。

lua_next 原理详解

另外在循环中处理值时要记得随时清理栈,否则 Table 就不在 -2 了。(也可以考虑在 lua_getglobal 后用lua_gettop 存下 Table 的正数索引。)

 

转载于:https://www.cnblogs.com/hangj/p/5192588.html

你可能感兴趣的文章
关于JDK1.8 HashMap扩容部分源码分析
查看>>
Git使用手册【转】
查看>>
JSOUP如何POST只含JSON格式的数据
查看>>
LeetCode OJ:Generate Parentheses(括号生成)
查看>>
sql 各种格式
查看>>
学习javascript过程中的心得体会
查看>>
分布式文件系统之FastDFS
查看>>
Basic Tutorials of Redis(7) -Publish and Subscribe
查看>>
谈谈Circuit Breaker在.NET Core中的简单应用
查看>>
PyCharm IDE环境搭建
查看>>
HADOOP之PiG简介
查看>>
2017 多校6 String
查看>>
influxdb与传统数据库的比较
查看>>
滚动字幕
查看>>
Centos目录结构详细版
查看>>
MySQL 如何执行关联查询
查看>>
从硬币游戏学习敏捷开发
查看>>
2017 4月14日
查看>>
KMP
查看>>
CefSharp .net
查看>>