【问题标题】:C LUA API - Get table value at indexC LUA API - 在索引处获取表值
【发布时间】:2013-10-05 23:28:47
【问题描述】:

假设如下lua代码:

local FooTable={ ["FooKey"]="FooValue" }

"FooValue" 的索引是"FooKey"。所以我可以毫无问题地像这样访问它(假设 FooTable 位于堆栈顶部。):

lua_getfield(L, -1, "FooKey");

当我尝试这样的事情时:

local FooTable={ "FooValue" }

我假设"FooValue" 的索引是"1"。但下面给了我一个nil 回报。

lua_getfield(L, -1, "1");

是否有一种特殊的方法可以访问表格中的数字键?

【问题讨论】:

    标签: c lua lua-table


    【解决方案1】:

    在第二种情况下,索引是第一,而不是字符串“1”。

    获取第一个元素的一种方法是使用以下函数:

    void lua_rawgeti (lua_State *L, int index, int key);
    

    另一种方法是在堆栈上压入一个键并调用:

    void lua_gettable (lua_State *L, int index);
    

    第一种方式不会触发元方法,第二种可以。

    【讨论】:

    • 谢谢,成功了。最终结果如下所示: lua_pushnumber(L, 1); lua_gettable(L, -2);
    猜你喜欢
    • 2021-03-11
    • 2015-05-21
    • 2021-06-05
    • 2015-07-11
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 2013-10-03
    • 2021-06-13
    相关资源
    最近更新 更多