11 2021 档案

摘要:【lua的匹配模式可以看做是功能不完整的正则表达式,只实现了大部分】 使用过程中,遇到的不支持的功能: # 分组匹配多次, 比如: abcabc, 无法用(abc)+匹配到 # 匹配次数范围, 比如: a{1,3}这种, 最少匹配1次,最多匹配3次 【可以使用匹配模式的函数】 # string.fi 阅读全文
posted @ 2021-11-13 23:20 yanghui01 阅读(1046) 评论(0) 推荐(0)
摘要:1 --常见字符串功能 2 local function Test1() 3 --大小写 4 assert("AA" == string.upper("aa")) 5 assert("aa" == string.lower("AA")) 6 7 --字符串长度 8 assert(2 == strin 阅读全文
posted @ 2021-11-13 21:06 yanghui01 阅读(119) 评论(0) 推荐(0)
摘要:函数参照c#的StringBuilder 1 require "utf8Ext" 2 3 StringBuilder = StringBuilder or {} 4 5 function StringBuilder.new() 6 local inst = {} 7 8 local charBuff 阅读全文
posted @ 2021-11-12 01:03 yanghui01 阅读(122) 评论(0) 推荐(0)
摘要:【关于unicode和utf-8】 # unicode字符集,包含了全世界的字符,然而它只是规定了字符的二进制编码,并没有规定二级制编码是如何存储的。utf-8就是unicode的一个实现方式,就是怎么存储和读取这个unicode二进制编码。 就像一张jpg图片,我们可以选择直接存放在硬盘上,也可以 阅读全文
posted @ 2021-11-12 00:58 yanghui01 阅读(1551) 评论(0) 推荐(0)
摘要:【参考】 # 实现的很简洁,值得参考 数据结构和算法(Java) - 双端队列(Array) - 知乎 (zhihu.com) local arrayext = require("arrayext") local Deque = {} Deque.__cname = "util.Deque" Deq 阅读全文
posted @ 2021-11-12 00:37 yanghui01 阅读(48) 评论(0) 推荐(0)
摘要:# 链表节点 local Node = {} Node.__cname = "util.LinkedList.Node" Node.__index = Node function Node.new(list, value) local obj = {} setmetatable(obj, Node) 阅读全文
posted @ 2021-11-12 00:35 yanghui01 阅读(47) 评论(0) 推荐(0)
摘要:# 使用循环队列的方式 local arrayext = require("arrayext") local Queue = {} Queue.__cname = "util.Queue" Queue.__index = Queue local ClearTypeEnum = { Reset = n 阅读全文
posted @ 2021-11-12 00:29 yanghui01 阅读(54) 评论(0) 推荐(0)
摘要:local Stack = {} Stack.__cname = "util.Stack" Stack.__index = Stack function Stack.new2(src) assert("util.Stack" == src.__cname, "InvalidArgument: not 阅读全文
posted @ 2021-11-12 00:28 yanghui01 阅读(43) 评论(0) 推荐(0)
摘要:# 在table的基础山增加了更直观的列表操作函数,同时使用了_count来跟踪元素数量 local list = {} list.__cname = "util.list" local null = {} list.null = null list.__newindex = function(se 阅读全文
posted @ 2021-11-12 00:26 yanghui01 阅读(72) 评论(0) 推荐(0)
摘要:把table当做函数一样调用时触发 local obj = {} local mt = { __call = function(tb, target) print("__call") end } setmetatable(obj, mt) obj(1) # 可以实现ClassName()直接触发对象 阅读全文
posted @ 2021-11-09 10:45 yanghui01 阅读(220) 评论(0) 推荐(0)
摘要:# for in遍历, 跟在in后面是3个参数:iteratorFunc, iteratorObj, initArg 第1次时,会用iteratorObj和initArg调用iteratorFunc, iteratorFunc(iteratorObj, initArg) 第2次时,会用iterato 阅读全文
posted @ 2021-11-06 17:36 yanghui01 阅读(1246) 评论(0) 推荐(0)