问题标签 [lua-table]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何在 C++ 中创建 Lua 表,并将其传递给 Lua 函数?
在 C++ 中,我有一个map<string, string>
, 包含未知数量的条目。如何将它传递给 Lua 函数,以便 Lua 函数可以将数据用作表?
lua - 如何在 Lua 中快速初始化关联表?
在 Lua 中,您可以通过以下方式创建表:
但是,我想创建一个关联表,我必须这样做:
以下给出了一个错误:
有没有办法类似于我的第一个代码片段?
lua - 如何按值复制 Lua 表?
最近我写了一些 Lua 代码,比如:
显然,这不是我想要做的,因为变量包含对匿名表的引用,而不是 Lua 中表本身的值。这在Programming in Lua中有明确规定,但我忘记了。
所以问题是我应该写什么而不是copy = a
获取值的副本a
?
list - 在 Lua 列表中搜索项目
如果我有这样的项目列表:
如何检查“橙色”是否在此列表中?
在 Python 中,我可以这样做:
Lua中是否有等价物?
memory-management - Lua 垃圾回收表,嵌套表
[我已经阅读了 Lua 手册,但它没有提供可靠的答案。]
假设我有一个 Lua 表,充当索引数组:
我如何最好地处置这张桌子?我只是将 myArray 设置为 nil 吗?还是我必须遍历数组并将每个索引元素设置为零?
同样,假设我有一个 Lua 表,充当字典:
我可以将'myDictionary'设置为零,还是必须遍历?
最后,在内存管理方面,我在哪里嵌套了表,我该怎么办?例如
我是否需要遍历每个子表,将它们设置为 nil?谢谢你的帮助。
lua - 确定 Lua 表是否为空(不包含条目)的最有效方法?
确定表是否为空(即当前既不包含数组样式值也不包含字典样式值)的最有效方法是什么?
目前,我正在使用next()
:
有没有更有效的方法?
注意:#
运算符在这里不够用,因为它仅对表中的数组样式值进行操作 - 因此与两者都返回 0#{test=2}
无法区分。#{}
另请注意,检查表变量是否nil
不够,因为我不是在寻找nil 值,而是具有 0 个条目的表(即{}
)。
merge - 如何合并两个表,覆盖两者中的元素?
我需要合并两个表,如果给定项目在两个表中,则第二个表的内容会覆盖第一个表中的内容。我看了,但标准库似乎没有提供这个。我在哪里可以获得这样的功能?
lua - Lua中的表连接
原帖
鉴于 Lua 中没有内置函数,我正在寻找一个允许我将表附加在一起的函数。我用谷歌搜索了很多,并尝试了我偶然发现的所有解决方案,但似乎没有一个能正常工作。
场景是这样的:我正在使用嵌入在应用程序中的 Lua。应用程序的内部命令以表格的形式返回值列表。
我要做的是在循环中递归地调用该命令,并将返回的值(再次以表的形式)附加到先前迭代的表中。
编辑
对于将来遇到此帖子的人,请注意@gimf 发布的内容。由于 Lua 中的表比其他任何东西都更像数组(即使在列表上下文中),所以没有真正正确的方法可以将一个表附加到另一个表。最接近的概念是合并表。请参阅帖子“ Lua - 合并表? ”以获得这方面的帮助。
binding - Lua 绑定:表与用户数据
在为 C++ 类进行 Lua 绑定时,我应该返回表还是用户数据对象?
有谁知道每种方法的优缺点?
c++ - 从 C++ 遍历 Lua 表?
我正在尝试将表从Lua加载到 C++,但我无法正确处理。我很好地完成了第一次迭代,但是在第二次调用 lua_next 时它崩溃了。有任何想法吗?
Lua 文件:
C++ 文件 - 首先我这样做:
然后我尝试了参考手册:
最后是这个:
自然 L 是一个 lua_State* ,我正在初始化它并解析文件。
编辑: 为了回应 Jesse Beder 的回答,我用记录器尝试了这段代码,但我仍然无法让它工作。
这给出了这个输出:
杰西,你所说的一切似乎都是正确的。但它仍然无法进入下一次迭代。
Edit2: 我试图将确切的代码复制到一个新项目中,跳过所有周围的类和我不想在这里和那里包含的东西。但在这里它没有,它只会在调用 lua_next 后存活下来。
Edit3: 我现在进一步缩小了范围。我使用hge作为我的 2D 引擎。我把之前的所有代码都放在了函数测试中:
据我了解,hge 对 lua 没有任何作用。 这是我做的一个小测试的源代码。hge 1.81 的来源在这里。
Edit4: 问题的大小已经失控,但无济于事。这是我能够将其简化为的最小代码。