![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lua
文章平均质量分 81
m0_37606538
这个作者很懒,什么都没留下…
展开
-
programming in lua 初读19,20
初学者,有错误希望指正。19——————————————————————————————环境变量--声明全局变量,防止拼写错误引起的bug--将说有全局变量保存在一个表中,使用metttables改变访问全局变量的行为#!/usr/local/bin/lualocal declaredNames = {}function declare (name, initval) rawset(_G, ...原创 2018-04-24 09:05:33 · 108 阅读 · 0 评论 -
programming in lua 初读18
初学者,有错误希望指正。18————————————Metatables and Metamethods--lua中不可以对两个表执行操作,也不能比较大小--metatables 允许我们改变table的行为--以相加为例,local a={} b={} a+b --1 检查其中一个表是否带有metatale--2 检查metatable是否有_add域--3 如果有则调用_add函数--[[ ...原创 2018-04-23 17:31:53 · 163 阅读 · 0 评论 -
programming in lua 初读 16,17
初学者,有错误希望指正。16————————数据文件与持久化--Entry{....}与Entry({....})等价。以一个表作为唯一参数--使用name-value对来描述数据:Entry{author = "Donald E. Knuth",title = "Literate Programming",publisher = "CSLI",year = 1992}Entry{author =...原创 2018-04-23 17:31:46 · 93 阅读 · 0 评论 -
programming in lua 初读15
初学者,有错误希望指正。15————————集--列出在一段源代码中出现的所有标示符function Set (list) local set = {} for _, l in ipairs(list) do set[tonumber()] = true end -- return setendreserved = Set{"while", "end", "function...原创 2018-04-23 17:31:40 · 129 阅读 · 0 评论 -
programming in lua 初读14
初学者,有错误希望指正。14———————队列和双向队列--table的insert和remove可以实现队列但是处理大数据时效率太低--有效的方式是使用连个索引下标,一个表示第一个元素术,另一个表示最后一个元素--为了避免污染全局命名空间--lua使用双精度有效的抑制了数据溢出,每秒100万次插入操作可执行200年List={}function List.new() return {first...原创 2018-04-23 17:31:35 · 126 阅读 · 0 评论 -
programming in lua 初读13
初学者,有错误希望指正。13————————数据结构————链表--[[--table实现的数据本身天生就具有稀疏特性--lua中矩阵的两种表示矩阵的方式--数组的数组mt={}for i=1,n do mt[i]={} for j=1,m do mt[i][j]=0 endend--将汗和列组合起来,第一个索引乘以一个常量(列)再加上第二个索引mt={}for i=1,n do for j=...原创 2018-04-23 17:30:55 · 113 阅读 · 0 评论 -
programming in lua 初读 12
初学者,有错误希望指正。12————————————————协同 coroutine#!/usr/local/bin/lua--[[co=coroutine.create(function() print("hi")end)]]--[[print(co)print(coroutine.status(co))coroutine.resume(co)print(coroutine.status(co)...原创 2018-04-23 17:31:01 · 79 阅读 · 0 评论 -
programming in lua 初读 9,10,11
初学者,有错误希望指正。9—————动态连接--[[lua使用loadlib(库的绝对路径,初始化函数)的函数提供了所有的动态连接的功能。]]local path="/usr/local/lua/lib/libluasockect.so"local f=assert(loadlib(path,"luaopen_socket"))--[[检测错误]]f()--[[loadlib函数加载指定的库并连接...原创 2018-04-23 17:30:50 · 156 阅读 · 0 评论 -
programming in lua 初读4,5,6,7,8
初学者,有错误希望指正。4——————————闭包的小应用,利用闭包特性建立隔离沙箱--[[创建一个安全的环境。当运行一段不信任的代码时需要的安全环境]]--[[比如使用闭包重定义io库的open函数来限制程序打开的文件]]--[[写一个调用io.open]]function open_change(filename,mode) local newopen=io.open --[[可用可不用用...原创 2018-04-23 17:30:45 · 96 阅读 · 0 评论 -
programming in lua 初读 1,2,3
初学者,有错误希望指正。1——————逻辑符a and b --[[如果a为false,则返回a,否则返回b]]a or b --[[如果a为true,则返回a,否则返回b]]x=x or v--[[当x为nil或false时,把v的值赋给x]]--[[等价于]]if not x then x=v end--[[C 语言中的 a?b:c在lua中用 (a and b) or c]]2—————...原创 2018-04-23 17:30:36 · 111 阅读 · 0 评论 -
programming in lua 初读21,22
21————————————————————————面向对象--对象应该具有独立的生命周期的原则--定义一个方法时要带上一个额外的参数,用来表示方法作用的对象。这个参数经常为self或者this#!/usr/local/bin/luaAccount={balance=0}--[[function Account.withdraw(v) Account.balance=Account.balan...转载 2018-04-24 09:05:43 · 124 阅读 · 0 评论