4

假设以下 lua 代码:

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

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

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

当我尝试这样的事情时:

local FooTable={ "FooValue" }

我会假设索引"FooValue""1"。但以下给了我一个nil回报。

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

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

4

1 回答 1

6

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

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

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

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

void lua_gettable (lua_State *L, int index);

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

于 2013-09-30T07:31:03.793 回答