在lua c++中访问由表键索引的表
Access a table indexed by a table key in lua C++
Lua表可以有一个表作为键,例如:
a = {[{}]=true}
我想知道如何从lua c++ api索引这个。例如,我可以这样做:
lua_getfield(L, -1, variablename);
获取堆栈上表的字符串键值。如何将表值键放到堆栈中?
lua_getfield
只不过是一系列命令的语法糖,您可以自己执行:
lua_pushstring(L, variablename);
lua_gettable(L -1 - 1); //The second minus one represents the fact that your table is actually one index below the top now.
将键压入堆栈,然后使用lua_gettable
访问它。不管是什么类型的键
你要回答的唯一问题是如何首先得到那个键。为……你得靠自己了。每个Lua表都有不同于其他Lua表的值。如果你的Lua脚本只是像这样在键中插入了一个新创建的Lua表,而没有向你传递对表的引用或全局存储引用,那么你就完了。
你唯一的追索权是只是通过表与lua_next
迭代,并希望一个键谁的类型是"表"是你正在寻找的键。
我认为您需要使用lua_next
迭代表。这个链接描述了这个过程:http://pgl.yoyo.org/luai/i/lua_next.
检查迭代表,并确定它是否是您要搜索的。
相关文章:
- 编译器(Visual C++)如何优化按索引访问矢量元素?
- 如何通过索引访问枚举类
- 通过索引访问 rapidjson::D ocument array
- 可以使用整数索引访问向量元素吗?
- 从对象创建矢量包装器,该对象只允许使用索引访问向量
- 如何使用索引访问C 结构属性值
- 字符串中消失的字符,但使用索引访问
- 是否可以使用 1D 索引访问 C++ 2D int 数组
- 提升图形库:获取edge_descriptor或通过 int 类型的索引访问边缘
- 在运行时按索引访问 std::tuple 元素的最佳方法
- 使用枚举作为索引访问 2D 向量
- 通过索引访问矢量的速度:向后与向前
- 是否可以使用负索引访问二维数组
- C++中基于类矩阵结构的索引访问
- 直接索引访问与"high"内存使用量相比的理论影响是什么? "shifted"使用"low"内存使用情况的索引访问?
- 增强对哈希唯一索引的多索引访问
- C++ STL 向量迭代器与索引访问和线程安全
- 如何通过索引访问 boost::multi_index::multi_index_container<> 的所有元素?
- 向量索引访问与迭代器访问的效率
- 具有唯一元素和按索引访问的容器