假设以下lua代码:
local FooTable={ ["FooKey"]="FooValue" }
"FooValue"
的索引为"FooKey"
。所以我可以像这样访问它而没有任何问题(假设FooTable在堆栈顶部。):
lua_getfield(L, -1, "FooKey");
当我尝试这样的事情时:
local FooTable={ "FooValue" }
我认为"FooValue"
的索引是"1"
。但是以下内容为我提供了nil
返回。
lua_getfield(L, -1, "1");
是否有一种特殊的方法来访问表格中的数字键?
答案 0 :(得分:6)
在第二种情况下,索引是第一个,而不是字符串“1”。
获取第一个元素的一种方法是使用以下函数:
void lua_rawgeti (lua_State *L, int index, int key);
另一种方法是在堆栈上按一下键并调用:
void lua_gettable (lua_State *L, int index);
第一种方式不会触发元方法,第二种方法可能会。