lua 中字符串是一个数组么

如题所述

不是。
数组操作
int l_map(lua_State *L){
int i,n;
//第一个参数必须是table
luaL_checktype(L,1,LUA_TABLE);
//第二个参数必须是一个函数
lua_checktype(L,2,LUA_FUNCTION);

//获取table的大小
n = lua_objlen(L,1);

for(i = 1;i<=n;i++){
//压入f
lua_pushvalue(L,2);
//压入t[i]
lua_rawgeti(L,1,i);
//调用f(t[i])
lua_call(L,1,1);
//t[i] = 结果
lua_rawseti(L,1,i);
}

return 0;
}
字符串操作
当一个C函数从Lua收到一个字符串参数时,必须遵守两条规则:
* 不要再访问字符串时从栈中弹出它
* 不要修改字符串
//把一个字符串s的子串传递给Lua
//区间[i,j]
lua_pushlstring(L,s+i,j-i+1)
温馨提示:答案为网友推荐,仅供参考
相似回答