获取表中指定索引的值。

假设下面是 Lua 代码:

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

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

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

当我尝试像这样做时:

local FooTable={ "FooValue" }

我会认为 "FooValue" 的索引是 "1"。但以下代码会返回一个 nil 值。

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

在访问表中的数字键时,是否有特殊的方法?

点赞
用户1022729
用户1022729

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

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

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

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

void lua_gettable (lua_State *L, int index);

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

2013-09-30 07:31:03