Lua数组
①数组是key值从1开始并连续递增的table。
②索引号是从1开始,不是从0开始。
lua还提供了一些只针对数组进行操作的API,如下:
①LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx);
luaL_len 使用于数组,可得到数组元素个数;
以数字形式返回给定索引处值的“长度”; 它等价于在 Lua 中调用 '#' 的操作。(非数组使用#将得不到正确的值)
②LUA_API int (lua_rawgeti) (lua_State *L, int idx, lua_Integer n);
lua_rawgeti 获取索引号n的数组值,返回的int值为值的类型。
这是一次直接访问,不会触发元方法,效率高。
③LUA_API void (lua_rawseti) (lua_State *L, int idx, lua_Integer n);
lua_rawseti 设置索引号n的数组值。
这个函数会将值弹出栈。 赋值是直接的;即不会触发元方法,效率高。
示例:
创建一个array.lua,lua文件会在C++加载
global_c_read_array = {5,6.78,"array string"}
if global_c_write_array then
for i = 1, #global_c_write_array do
print("v = ", global_c_w