lua 中字符串是一个数组么
1个回答
展开全部
不是。
数组操作
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)
数组操作
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)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询