数组操作-编写C函数技术(一)
2018, Jan 27
lua中的数组,仅仅是一个以特殊方式使用的table。
可以使用操作table的方法lua_settable和lua_gettable来操作数组。但是也可以使用下面的方法来访问和更新数组中的元素值。
void lua_seti(lua_State *L, int index, int key)
void lua_geti(lua_State *L, int index, int key)
说明:
- lua5.3之前,使用的是lua_rawgeti和lua_rawseti方法,这两个方法和上面两个方法相似,但是不访问元表方法。当table没有元表的时候,使用后两种方法速度更快。
- 参数说明: index是table在栈中的索引 key是元素的键
- lua_geti(L, t, key) 语句与下面语句等效(前提是:t是正值)
lua_pushnumber(L, key);
lua_gettable(L, t);
4.lua_seti(L, t, key) 语句与下面语句等效(前提是:t是正值)
lua_pushnumber(L, key)
lua_insert(L, -2);
lua_settable(L, t);