加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua table 基本使用

发布时间:2020-12-14 22:13:32 所属栏目:大数据 来源:网络整理
导读:table在Lua中唯一的数据结构,其它语言提供的各种数据结构Lua都是用table来实现的 。下面是一个C API操作table的例子。 #include stdio.h #include "lua.h" #include "lauxlib.h" #include "lualib.h" int main() { ???????? lua_State *L; ??????? L = luaL
table在Lua中唯一的数据结构,其它语言提供的各种数据结构Lua都是用table来实现的 。下面是一个C API操作table的例子。

#include <stdio.h>
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"

int main()
{
????????
lua_State *L;
??????? L = luaL_newstate();
??????? luaL_openlibs(L);

??????? // ta = {'AA','BB',{'CC','DD'}}
????? ?? lua_newtable(L);
??????? //依次将各个元素放入table
??????? lua_pushnumber(L,1);
??????? lua_pushstring(L,"AA");
??????? lua_rawset(L,1);

??????? lua_pushnumber(L,2);
??????? lua_pushstring(L,"BB");
??????? lua_rawset(L,3);
??????? lua_newtable(L);
??????? lua_pushstring(L,"CC");
??????? lua_rawseti(L,-2,1);

??????? lua_pushstring(L,"DD");
??????? lua_rawseti(L,2);
??????? lua_rawset(L,1);

??????? lua_setglobal(L,"ta");
??????? //此时栈中为空,此处省略其他操作
??????? //将ta压入栈顶
??????? lua_getglobal(L,u5b8bu4f53">??????? //获得第一个元素
??????? lua_rawgeti(L,1,1);
??????? if(lua_type(L,-1) == LUA_TSTRING)
??????????????? printf("%s",lua_tostring(L,-1));
??????? lua_pop(L,1);

??????? lua_rawgeti(L,2);
??????? if(lua_type(L,3);
??????? if(lua_type(L,-1) == LUA_TTABLE)
??????? {
???????? ??????? //因为第三个元素是table,所以继续获得它的第一个元素
??????????????? lua_rawgeti(L,-1,1);
??????????????? if(lua_type(L,-1) == LUA_TSTRING)
??????????????????????? printf("%s",-1));
??????????????? lua_pop(L,1);

??????????????? lua_rawgeti(L,2);
??????????????? if(lua_type(L,1);????????????????
??????? }
??????? lua_pop(L,1); //此时栈顶为ta
????????????????????? ??????? lua_close(L); }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读