总结一下游戏开发中的Lua日志输出打印方法全集和Lua高级语法

Lua可以断点调试(想当年),但大部分团队大部分程序员还是主要靠日志输出

目录

一般用法

分字段打印

不支持链接布尔值连接,这样写不行的

打印堆栈

各方法详细解释

程序员的个人修养


所以日志挺重要的

一般用法

分字段打印

不知道是不是lua独有,写法比较奔放,无论传参和出参都没限制(无论项目大小,实际使用也明显无什么大问题),下面print_log为自定义扩展方法

对于习惯了 + 号的同学,可能会这么写,明显容易出错,  其中,bundleName非常容易为Nil

print_log("OnSceneLoadProgress -----"..bundleName .." "..1024)

cpp,c++可能会这么写

print_log(string.format("OnSceneLoadProgress ----- %s %d", " ", 1024)

但是Lua是这么写d

print_log("OnSceneLoadProgress ----- ", per_value, " ", debug.traceback())

不支持链接布尔值连接,这样写不行的

print_log("try log 布尔" + bol)

打印堆栈

debug.traceback方法

print_log("OnSceneLoadProgress ----- ", per_value, " ", debug.traceback())

各方法详细解释

程序员的个人修养(高级语法)

(不断补充中,会很慢,很长,很漫长)

其实,你只要在你的lua项目中(10人以上团队)找一下lib,tool,util等关键字,就能看到很多“高级”语法;这是无论百度还是书本都没有的宝贵实践经验

断言Asset

-- 之前有一个同事很喜欢用,对lua语法的掌握还是很有帮助的,只是结合Unity(因为本身有太多封装,也鼓励用plugin)之后有点不太好使,不过用用也无妨

安全调用pcall

pcall(function) 可能会返回:

成功:true和函数的返回值[s] .
失败:错误和错误 .

调用xpcall

SaveCall = {}
function SaveCall.Call(func,par)
	local status,ret = xpcall(func,SaveCall.traceback,par)
	print_log("SaveCall,status="..tostring(status))
	return ret
end

function SaveCall.traceback(err)
	print_error("LUA ERROR: " .. tostring(err))--已经会打印堆栈,而 print_error 这个打印方法你懂的,如果没额外自创建,可以用原生 print 方法
	--print_error(debug.traceback()) --因为哥的框架有做lua 错误爆堆栈,所以无需和网上”一般见识“,这只会多打印一次堆栈
end

调用call

参考书籍

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值