TA的每日心情 | 郁闷 2019-9-30 18:03 |
---|
签到天数: 33 天 [LV.5]常住居民I
VIP会员
  
- 积分
- 7576
|
本帖最后由 1149 于 2018-10-7 16:01 编辑
1,luaL_checktype,当类型不一致程序会结束运行
[mw_shl_code=cpp,true]int test(lua_State* lua)
{
luaL_checktype(lua, 1, LUA_TTABLE);
return 0;
}[/mw_shl_code]
如图我传入double,在类型检查里我检测传入参数不是table,明显类型不匹配,所以程序中断运行
2,lua_type,自己判断,当类型不匹配,执行自己的操作
[mw_shl_code=cpp,true]int test(lua_State* lua)
{
if (lua_type(lua, 2) != LUA_TNUMBER)
{
printf("传入的类型不是double");
return 0;
}
printf("继续运行");
return 0;
}[/mw_shl_code]
如图,在LUA里,第一我传入double,第二个传入string,明显第二个参数不匹配,所以打印第一个
printf,第二个printf没有打印
3,返回一个普通类型
[mw_shl_code=cpp,true]int test(lua_State* lua)
{
lua_pushstring(lua, "我是string类型返回值");
return 1;//1代表返回一个,pop 1个值
}[/mw_shl_code]
4,返回一个表类型
[mw_shl_code=cpp,true]int test(lua_State* lua)
{
lua_newtable(lua);//创建一张表
lua_pushnumber(lua, 1);//push 索引
lua_pushnumber(lua, 99);;//push 值
lua_settable(lua, 1);//做一个等价于 t[k] = v 的操作 并 pop 索引 pop 值
lua_pushnumber(lua, 2);
lua_pushnumber(lua, 88);;
lua_settable(lua, 1);
return 1;//1代表返回一个,pop 1个值
}[/mw_shl_code]
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|