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

浙公网安备 33010602011771号