随笔分类 -  Lua

摘要:--local util={}--function util.Split(str, sep)-- local sep, fields = sep or ":", {}-- local pattern = string.format("([^%s]+)", sep)-- str:gsub(patter 阅读全文
posted @ 2021-11-03 19:18 钢与铁 阅读(54) 评论(0) 推荐(0) 编辑
摘要:Lua os.date() os.date## 原型:os.date ([format [, time]]) 解释:返回一个按format格式化日期、时间的字串或表。 usage## 参数格式: 由原型可以看出可以省略第二个参数也可以省略两个参数,只省略第二个参数函数会使用当前时间作为第二个参数,如 阅读全文
posted @ 2021-06-01 14:55 钢与铁 阅读(700) 评论(0) 推荐(0) 编辑
摘要:在时间这个问题上,lua提供两大方法来供开发者使用,一个是os.time(),一个是os.date(),这两大方法可以满足日常开发的需求。 那么我们如何准确运用这两大方法呢。 在这一文章中我们先讲os.time(),并通过一个简单的例子来获取到指定时间的秒数。 在开始这个例子之前,我们需要明白一些东 阅读全文
posted @ 2021-05-31 11:51 钢与铁 阅读(431) 评论(0) 推荐(0) 编辑
摘要:local event={}event.__call=function(self) print(self.a)endlocal t=setmetatable({a=1},event)t()输出结果为:1 阅读全文
posted @ 2021-05-10 14:37 钢与铁 阅读(424) 评论(0) 推荐(0) 编辑
摘要:Lua虚拟机概述 何为"虚拟机"? 在一门脚本语言中,总会有一个虚拟机,可是”虚拟机”是什么?简而言之,这里的”虚拟机”就是使用代码实现的用于模拟计算机运行的程序. 每一门脚本语言都会有自己定义的opcode(operation code,中文一般翻译为”操作码”),可以理解为这门程序自己定义的”汇 阅读全文
posted @ 2021-02-15 12:32 钢与铁 阅读(621) 评论(0) 推荐(0) 编辑
摘要:前言 本文主要介绍了三色标记法的基本思路、多标导致的浮动垃圾、漏标的处理方案(读写屏障)等。 1. 垃圾回收的简单回顾 关于垃圾回收算法,基本就是那么几种:标记-清除、标记-复制、标记-整理。在此基础上可以增加分代(新生代/老年代),每代采取不同的回收算法,以提高整体的分配和回收效率。 无论使用哪种 阅读全文
posted @ 2020-10-26 12:22 钢与铁 阅读(787) 评论(0) 推荐(0) 编辑
摘要:一般lua开发不用什么高级的ide,貌似也没有适合的,就直接用sublime、exvim等文本编辑器,直接编译运行看结果。所以不能很方便的知道变量值,特别是开发手游时,前后端调协议,如果无法查看后端发过来的数据就更蛋疼了。对于其他的数据还可以直接用print()函数打印出来,但对于table数据pr 阅读全文
posted @ 2020-08-09 11:30 钢与铁 阅读(1565) 评论(0) 推荐(0) 编辑
摘要:Lua中的协程和多线程很相似,每一个协程有自己的堆栈,自己的局部变量,可以通过yield-resume实现在协程间的切换。不同之处是:Lua协程是非抢占式的多线程,必须手动在不同的协程间切换,且同一时刻只能有一个协程在运行。并且Lua中的协程无法在外部将其停止,而且有可能导致程序阻塞。 协同程序(C 阅读全文
posted @ 2020-05-05 22:29 钢与铁 阅读(306) 评论(0) 推荐(0) 编辑
摘要:说明 分析lua使用的gc算法,如何做到分步gc,以及测试结论 gc算法分析 lua gc采用的是标记-清除算法,即一次gc分两步: 从根节点开始遍历gc对象,如果可达,则标记 遍历所有的gc对象,清除没有被标记的对象 二色标记法 lua 5.1之前采用的算法,二色回收法是最简单的标记-清除算法,缺 阅读全文
posted @ 2020-04-18 09:49 钢与铁 阅读(8647) 评论(0) 推荐(1) 编辑
摘要:自我总结一句话:警惕copy导致的数据冗余,和元表设置导致的深度索引lua里面实现class机制,比较关键的地方就是class的继承机制,以及class实例化的过程。 class继承机制的关键是怎么让子类拥有父类的方法集:<br>1.完全使用setmetatable()的方式实现,每继承一次,都把父 阅读全文
posted @ 2020-04-18 08:02 钢与铁 阅读(304) 评论(0) 推荐(0) 编辑
摘要:这一节介绍Lua唯一的数据结构table,相对于大部分语言提供数组和字典两种类型,Lua将其合二为一,颇为精巧的实现了table。 table充分体现了Lua语言的特点,用最简练的语法表达丰富的信息,但也增加了用户的理解成本。table包含数组和哈希两部分功能,所以实现起来颇为复杂。 本文展示的代码 阅读全文
posted @ 2020-04-16 17:40 钢与铁 阅读(168) 评论(0) 推荐(0) 编辑
摘要:一、table结构 1、Table结构体 首先了解一下table结构的组成结构,table是存放在GCObject里的。结构如下: typedef struct Table { CommonHeader; lu_byte flags; /* 1<<p means tagmethod(p) is no 阅读全文
posted @ 2020-04-16 15:01 钢与铁 阅读(435) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示