
Lua
文章平均质量分 65
gneveek
T_T此号终于找回,以后要注意安全。
展开
-
30行代码在skynet中实现预警机器人
1. 预警机器人的定义 预警机器人就是当线上有任何错误发生时,它会把错误信息以某种形式通知到某处。 2. 思路 2.1 报错拦截 在 skynet 构建的系统中,报错一般是 lua 引起的,比如 attemp index a nil value, 这些报错的位置虽然分散在成百上千个文件里,但入口其实非常有限,我们只要在入口处拦截掉这些报错,就能把错误信息发送到出去。 以下列出不同业务类型其报错的入...原创 2020-01-17 09:54:19 · 574 阅读 · 1 评论 -
skynet之协程池(co_create)
local coroutine_pool = {} local coroutine_yield = coroutine.yieldlocal function co_create(f) local co = table.remove(coroutine_pool) if co == nil then co = coroutine.create(function(...原创 2017-09-11 20:12:52 · 1808 阅读 · 0 评论 -
lua 防御式编程辅助函数
防御式编程是提高软件质量技术的有益辅助手段。防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。 以上是引用自百科的一段描述,在实际编码过程中,我们除了判断参数是否合法外,还会 assert 非法参数,以达到快速定位出错位置的目的。一些示例比如我们有一个 计算两个 number 之和的一个函数:fun原创 2018-01-03 21:10:18 · 1578 阅读 · 0 评论 -
Lua仿C++面向对象实现(LuaOO)
该实现的特性 支持类似C++的 new() 和 delete() 函数 构造(ctor)和析构(dtor)函数会自动按C++顺序调用(ctor从最底层基类开始调用,dtor从高上层派生类调用) 派生类中可以访问被覆盖的子类方法 实现代码 function class(super) local cls = {} if super then setm...原创 2018-05-03 11:59:21 · 1009 阅读 · 0 评论