Lua C APi 总结
Lua_newtable(L) 创建table并放到栈顶
lua_pushstring(L,"11") 压入key
lua_pushnumber(L,22) 压入value
Lua_settable(L,-3) key,value设置到table中,key,value出栈
Lua_pushnil(L) 栈内推入nil
luapushlightuserdata(luaStatus *L,void *p) 把一个userData对象压栈。
Luagettable(L,LUAREGISTRYINDEX) 从index找到对应的表,以栈顶元素为key,在表里面去取值,先把栈顶元素出栈,然后把从表中获取的元素入栈
Luasettable(L,LUAREGISTRYINDEX) 取出指定index上的表,设置表的key为栈顶下的值,value为栈顶的值,设置完毕key,value出栈
Lua_insert(L,-2) 栈顶元素和指定索引位置的元素互换位置。
Lua_pushValue(L,-1) 把栈上指定位置的索引拷贝一份 入栈。
lua_call(L,args) 调用L->top - (nrgs + 1) 处的func。参数是从哪个func开始向上到栈顶
luapcall 相比luacall 安全的lua方法调用
Luanewstate(lalloc,(_bridge void *)self) 创建并返回luaStatus,并且把当前self绑定到luaStatus.LG->ud
lua_touserdata(L,index)返回指定index位置的内存
lua_next() 先从栈顶弹出一个key,然后在取出指定的table 下一对key-value ,key先入栈,value再入栈。
lua_getfenv(L,index)把索引值对应位置的userData环境表压入堆栈。
lua_remove(L,index) 移除指定索引的元素,当前元素上面的索引下移
网友评论