Lua
forfcw
这个作者很懒,什么都没留下…
展开
-
coroutine_管道(pipe)与过滤器(filter)
1.协同程序是一种匹配生产者和消费者的理想工具producer=coroutine.create(function() –生产者while true dolocal x=io.read()send(x)endend)function consumer()–消费者while true dolocal x=receive()io.write(x,”\n”)endendfunction receive(...原创 2018-06-13 09:07:07 · 522 阅读 · 0 评论 -
Lua 数据结构 (数组/矩阵/多维数组/链表/队列/字符串缓冲)
个人感觉LUA语言的简洁高效,正是在于同一变量用于不同类型,表格可以便利的实现各种数据结构,后面通过元表(元表)面向对象1.数组a = {} for i = -5 5做一个[i] = 0结束初始化数组的索引可以是任意值,但是LUA习惯使用1作为数组开始的下标,LUA库和长度操作符都遵循这个习惯,如果不是从1开始就不能使用这些功能,#一个获取数组长度2.矩阵和多维数组a = {} for i = 1...原创 2018-06-13 09:08:41 · 1575 阅读 · 0 评论 -
lua数据结构 (metatable_matemethod1)
可以说,元表是LUA面向对象的基础,通过元表可以非常简洁的通过表来实现封装和继承(至于多态,暂时不知道怎么实现)1.设置和获取元表T = {}print(getmetatable(t)) - >输出t的元表,这里为nilT1 = {}setmetatable(t,t1)--t的元表为t12.算数类元方法设置= {}本地mt = {}函数Set.new(l) - 通过l来返回一个相同的表本地设...原创 2018-06-13 09:09:32 · 167 阅读 · 0 评论 -
lua数据结构 (metatable_matemethod2)
当我们访问表中一个不存在的字段时,返回结果为无。这是对的,却又不完全对!因为这次访问会促使解释器会去查找一个__index,如果__index为一个表,则在表中继续查找如果__index为一个元方法,则表和不存在的键作为参数来调用该函数,否若mt .__ index = funtion()返回“undefined”end;那么不存在字段的返回结果为undefined。如果没有这个没有这个元方法,那...原创 2018-06-13 09:13:18 · 151 阅读 · 0 评论 -
lua数据结构 (metatable_meatmethod3)
1.具有默认值的tablefunction setDefault(t,d)local mt={__index=function() return d end}setmetatable(t,mt)endtab={x=10,y=20}setDafault(tab,5)print(tab.z) ———–5 2.跟踪table的访问t={} —–需要跟踪的table(可能为与其他地方)local ...原创 2018-06-13 09:14:03 · 164 阅读 · 0 评论 -
lua面向对象(继承及多继承)
╮(╯_╰)╭还是个人感觉,LUA轻量简洁的语法,正式在于表这种类似于对象的使用,表:拥有状态独立于其值的标识独立于创建者和创建地的生命周期1.使用自参数是所有面向对象的语言的一个核心。大多数面向对象语言都能对我们隐藏部分自我参数,从而使我们不需要显示的调用这个参数。(就跟此差不多)LUA使用该参数需要使用冒号T = {A = 10} ------不使用funtion t.add(self,x)s...原创 2018-06-13 09:14:48 · 563 阅读 · 0 评论 -
lua面向对象(封装)
table1(状态)----> table2(操作/接口)对象本身是通过第二个表来访问的函数newAccount(initialBalance)本地自我= {平衡=初始平衡}本地撤回=功能(v)self.balance = self.balance-V结束本地存款=功能(v)selself.balance = self.balance + V结束local getBalanc = funti...原创 2018-06-13 09:15:30 · 275 阅读 · 0 评论