如何使用Lua C API在.lua脚本中获取所有表名称的列表?

我有一个 Lua 文件,看起来像这样:

tableA = {…}
tableB = {…}
tableC = {…}

我想获得一个包含文件中定义的所有表名称的 std::vector:{"tableA","tableB","tableC"}

我如何使用 Lua C API 执行此操作?

点赞
用户258523
用户258523

如果要获取脚本文件执行期间创建的随机全局变量的名称,您需要使用环境交互来在您自己的“全局”上下文中运行脚本。

如果您可以修改脚本,将让其返回表格(或仅返回它们的名称),这将更容易在调用脚本时获取。

代码块标记
2014-06-29 12:59:01
用户501459
用户501459

表格没有名称,变量有名称。

在这种情况下,变量是全局的,因此变量名称只是全局表中的键。但是,如果您正在编写的是 API,则可能是设计不良。您应该让脚本拥有一种“注册”有意义的值的方式,而不是强迫脚本作者将它们放入特定的位置。

2014-06-29 18:39:29