首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

lglib统观

2012-07-04 
lglib概览lglib为lua提供了很多扩展。加载lglib后,它完成以下几件事情:1. 扩展了lua标准库中的string, tabl

lglib概览
lglib为lua提供了很多扩展。加载lglib后,它完成以下几件事情:

1. 扩展了lua标准库中的string, table, io三个库;
2. 增加了一些数据类型;
3. 增加了一些辅助函数。

第一个工作,就是把lglib.string, lglib.table, lglib.io三个模块中的接口注入到lua标准库中的string, table, io三个名称空间下。

第二个工作,主要是新增了以下全局数据对象:

Object:这个对象,为lua提供了方便好用的oop机制。

local Cat = Object:extend {....}


List:这个对象,为lua添加了方便好用的列表操作API。
Dict:这个对象,为lua添加了方便好用的字典操作API。
Set:这个对象,为lua添加了方便好用的集合操作API。
T:这个函数,为lua中生成一个可以使用面向对象语法的table对象提供的支持。

第三个工作,主要新增了以下全局辅助函数:

判断table系对象类型中具体的类型
typename(t)返回'List', 'Dict', 'Set', 'Table', nil中的一种


判断对象是否为list
isList(t)如果是list,就返回true;否则,返回false


判断对象是否为dict
isDict(t)如果是dict,就返回true;否则,返回false


判断对象是否为set
isSet(t)如果是set,就返回true;否则,返回false


打印一层table内容
ptable(t)


打印两层table内容
pptable(t)


打印完整对象内容(参数可以为任意对象,不局限于table)
po(t)


参数类型检查断言(如果不合就让程序报错停下来)
checkType(...)其中,参数要求这个样子使用。即先写参数变量,后面要跟上这些变量的期望类型。checkType(a, b, c, 'string', 'table', 'number')


参数范围检查断言(如果不合就让程序报错停下来)
checkRange(...)其中,参数要求这个样子使用。checkRange(a, 0, 10, b, 20, 30, c, 10, 100)表示期望a在0到10之间,b在20到30之间,c在10到100之间。(最好是要分下组,后面要改进)


判断是否为假,对所有对象适用。一般用于nil值,数值0的判断
isFalse(...)如果为假,就返回true;否则,返回false


判断是否为空,对所有对象适用。一般用于字符串,表格的判断
isEmpty(...)如果为空,就返回true;否则,返回false


设置对象的原型
setProto(obj, proto)设置obj原型为protoobj:必须为table及衍生类型;proto:必须为table及衍生类型;


对象序列化
seri(obj)将obj序列化(转成字符串返回)


反序列化对象
unseri(obj_str)将obj_str反序列化(转成对象返回)


热点排行