lua_settable

来源:互联网 发布:零之镇魂曲 知乎 编辑:程序博客网 时间:2024/06/05 08:21



<span style="font-size:18px;">int func_return_table(lua_State *L){ lua_newtable(L);//创建一个表格,放在栈顶 lua_pushstring(L, "mydata");//压入key lua_pushnumber(L,66);//压入value lua_settable(L,-3);//弹出key,value,并设置到table里面去 lua_pushstring(L, "subdata");//压入key lua_newtable(L);//压入value,也是一个table lua_pushstring(L, "mydata");//压入subtable的key lua_pushnumber(L,53);//value lua_settable(L,-3);//弹出key,value,并设置到subtable lua_settable(L,-3);//这时候父table的位置还是-3,弹出key,value(subtable),并设置到table里去 lua_pushstring(L, "mydata2");//同上 lua_pushnumber(L,77); lua_settable(L,-3); return 1;//堆栈里现在就一个table.其他都被弹掉了。}返回的表结构是:{ "mydata" = 66, "mydate2" = 77, "subdata" =  {  "mydata" = 53 }}</span>


[-2, +0, e]

void lua_settable (lua_State *L, int index);

Does the equivalent to t[k] = v, where t is the value at the given index, v is the value at the top of the stack, and k is the value just below the top.

This function pops both the key and the value from the stack. As in Lua, this function may trigger a metamethod for the "newindex" event 



0 0
原创粉丝点击