lua学习笔记(一)---c++使用lua返回的table
最近想在自己的客户端程序里面嵌入lua,so来学习了一下lua,在测试一段分割字符串的代码时,函数返回了一个table,
一时不知道怎么写c++取数据的代码。问了一个群,才知道怎么写。c++代码如下
lua_State* l = lua_open(); luaL_openlibs(l); if(!luaL_dofile(l,"version.lua")) { lua_getglobal(l,"split"); lua_pushstring(l,"20.3.4.5"); lua_pcall(l,1,1,0); if(lua_istable(l,-1)) { lua_pushnil(l); while(lua_next(l,-2)!=0) { if(lua_isstring(l,-1)) { ... } lua_remove(l,-1); } } } lua_pop(l,1);
lua代码如下
1 function split(sPath) 2 local s=sPath 3 local t={} 4 local i=0 5 for w in string.gmatch(s,"%d+") do 6 t[i]=w 7 i=i+1 8 end 9 return t 10 end
l测试过了后,lua代码有问题,打印时table为3,4,5,20
还以为是排序过了,最后查了下才知道table的index应该从1开始。修改了local i = 1后代码ok了。
浙公网安备 33010602011771号