之前我们只是获取一个全局变量而已,现在我们再进一步——获取lua表结构的数据。
1. table是什么
table是lua里最强大的数据类型,我们可以认为是数组,但它又跟数组有点不一样。下面我们将用demo来具体介绍一下。
2. 获取table变量
现在,我们给helloLua.lua文件添加一个table全局标量:
-- helloLua.lua 文件
myName="beautiful girl"
helloTable={name="cfy",age=23}
我们可以看到,文件中多了一个helloTable变量,它和数组十分相似,又和HashMap有点类似,总之它很强大。
获取helloTable变量的方式和以前是一样的,代码如下:
/* 取得table变量,在栈顶 */
lua_getglobal(pL,"helloTable");
这样的话,helloTable变量就被存放到栈顶了。
但是要注意的是,我们并不是要取table变量,因为C++中是无法识别lua的table类型的,所以我们要取得table中具体的值,也就是name和age的值。