
lua
Jason天明
这个作者很懒,什么都没留下…
展开
-
lua之文件加载require、loadfile、dofile、load、loadstring的用法及区别
1.load同loadstring,5.2版本之后loadstring被移除,用load代替load(chunk, chunkname, mode, env) 用于加载一个指定路径filename的代码块,参数如下:chunk 字符串代码块 chunkname 模块名,默认是"chunk",当使用assert函数报错后会被打印出来 mode 文件类型:"b":二进制;"t":文本文件;"bt":同时兼容二进制和文本文件,不填默认是"bt" env 环境变量,不原创 2020-05-18 16:35:02 · 8475 阅读 · 0 评论 -
lua弱引用表weak table的用途
目录1.简介2.定义3.示例 示例1 示例21.简介1)lua的GC默认是自动回收的,当一个对象的引用计数为0时,它就会被GC所回收。2)lua中的表默认是强引用的,当你把某个对象放入表中时,就是生成一个对它的强引用(对象的引用计数+1),在对象的引用计数没有为0之前不会被GC回收;3)如果把一个表声明为弱引用,则当把某个对象放如表中时,生成一个弱引用(对象不会被引用计数,可以理解为引用计数+0);如果一个对象只被弱引用表所引用(对象的引用计数为0...原创 2020-05-13 18:18:28 · 1604 阅读 · 1 评论 -
lua之只读属性探讨
lua中如何实现类的只读属性呢?这里我们可以用重写lua的元方法__newindex来模拟,参见如下:--创建一个只读表function readonly_Table(t) t = t or {} t.__index = t t.__newindex = function(table, key, value) print("Error : Att...原创 2020-05-08 10:50:34 · 1074 阅读 · 1 评论 -
浅谈lua之实现面向对象
众所周知lua并没有面向对象的概念,但我们可以用lua的一些特性(元表、元方法)近似模拟出一些面向对象的特征:类、继承、多态1.类我们可以用table来模拟一个类,参见如下:--基类Base = {x, y}--创建一个基类的实例function Base:New(x, y) local o = {} setmetatable(o, self) sel...原创 2020-05-07 17:39:52 · 451 阅读 · 0 评论 -
浅谈lua之协同程序coroutine
1.浅谈coroutine.create()和coroutine.wrap()的区别,参见下例:yieldFunc = function(a) print("a = ", a) coroutine.yield(a)endco = coroutine.create(yieldFunc)print("co是:", type(co))coroutine.resume(co...原创 2020-05-06 15:07:50 · 581 阅读 · 0 评论