C LUA API - 获取索引处的表值

时间:2013-09-30 07:17:53

标签: c lua lua-table

假设以下lua代码:

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

"FooValue"的索引为"FooKey"。所以我可以像这样访问它而没有任何问题(假设FooTable在堆栈顶部。):

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

当我尝试这样的事情时:

local FooTable={ "FooValue" }

我认为"FooValue"的索引是"1"。但是以下内容为我提供了nil返回。

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

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

1 个答案:

答案 0 :(得分:6)

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

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

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

另一种方法是在堆栈上按一下键并调用:

void lua_gettable (lua_State *L, int index);

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