gpt4 book ai didi

c++ - 在 lua C++ 中访问由表键索引的表

转载 作者:行者123 更新时间:2023-11-30 01:58:38 24 4
gpt4 key购买 nike

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.

您将 key 压入堆栈,然后使用 lua_gettable 访问它。这是真的不管它是什么类型的 key 。

您必须回答的唯一问题是首先如何真正获得该 key 。为此……你只能靠自己了。每个 Lua 表与其他每个 Lua 表都有不同的值。如果您的 Lua 脚本只是像那样在键中塞入了一个新创建的 Lua 表,而没有将对该表的引用传递给您或在全局范围内存储引用,那么您就完蛋了。

那么你唯一的办法就是 iterate through the table with lua_next并希望类型为“table”的键是您要查找的键。

关于c++ - 在 lua C++ 中访问由表键索引的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17140112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com