2017.5.23

作者: 铁拳宝宝爱芝麻 | 来源:发表于2017-05-24 11:14 被阅读0次
  1. 搭建环境,准备代码阅读和分析工具,所谓“工欲善其事必先利其器”也
    准备 understand, enterprise architect,sourceInsight这三个基本工具。

-- sourceInsight 使代码阅读和编辑的利器,能够很方便的在函数申明,调用之间进行跳转,很方便对代码进行细读时使用
-- enterprise architect,简称EA,这款工具一般主要用于UML建模等,但这仅仅只是其中一个很小的功能,它能够根据源代码进行反向工程,反向出UML model,能够根据DB model 生成相应的DDL,也能够根据DDL反过来生成相应的DB model,合理的使用EA,能够大大简化工作量。一般我阅读代码的时候,主要使用的就是EA的反向工程的能力(reverse engineering)
-- understand 这款工具,也是最近才得知的,这个工具是一款代码分析工具,能够对源代码进行分析,同时生成各种模型图,方便对代码进行阅读和理解。


lua学习回顾与总结:

  1. lua 函数是一种左值,也就是说,function 类型的数,比如 print 函数,其实是print 变量指向一个函数,能够像 字符串或者整型数一样使用,能够作为函数参数,能够作为函数返回值使用。一般定义函数如下所示:
    <code>
    local function sum()
    statement
    end
    </code>
    <code>
    等价于
    local sum
    sum = function ()
    statement
    end
    </code>

  2. 将到 lua 中的函数,就不得不提到闭包的概念 clousure。闭包指的是值,而不是函数原型。所谓的闭包,就是一个函数及其该函数所需访问的所有“外部的局部变量”。外部的局部变量,也称为为"UpValue",这是有历史意义的。在lua 总,所有的函数都是闭包。
    比如
    <code>
    function newCounter ()
    local i = 0
    return function ()
    i = i + 1
    return i
    end
    end
    </code>
    上面的函数中,newCounter 就是一个闭包,在该函数内部,返回了一个匿名函数,该匿名函数能够直接访问newCounter 内部的局部变量 i,这就是外部的局部变量

  3. 迭代器
    for 语句使用迭代器的时候,会保存三个值:迭代器函数、恒定状态和控制变量。
    比如
    for var1, var2,...varn in <exp-list> do
    block
    end
    首先,迭代器函数 <exp-list>会返回三个值个for,迭代器函数_f, 恒定状态_s,控制变量_var。然后通过恒定状态和控制变量对迭代器函数求值,返回值中如果第一个值不是nil,那么将执行循环体中的语句,否则,退出循环。可以写成如下代码块:
    <code>
    _f,_s,_var = <exp-list>
    while true do
    var1,var2,...,varn = _f(_s, _var)
    _var = var1
    if _var == nil then
    break
    end
    block
    end
    </code>
    还有无状态的迭代器,lua提供的迭代器:
    数组 -- ipairs()
    table -- pairs()
    string中的单词 -- string.gmatch()
    行 -- io.lines()

dofile()
loadfile()
loadstring
require
错误处理
assert
pcall
xpcall
debug.debug()
debug.traceback()

  1. 协同程序
    协同程序与多线程类似,但是一个程序能够同时运行多个线程,线程之间彼此相互独立,一个程序同时只能运行一个协程,协程之间是相互合作运行的。一个协程只有在其显示的要求挂起时,才会暂停执行。
    coroutine.create() -- 创建协同程序
    coroutine.yield() -- 挂起
    coroutine.resume() -- 唤醒
    resume - yield 之间可以相互传递参数,类似于生产者与消费者之间的关系

相关文章

  • 我们留给下一代最好的是什么?

    2017.5.23 文/满全 ...

  • 2017.5.23

    总喜欢在傍晚看部电影,大概要睡的时候结束,一个人静静重温整部影片,写下自己的感悟,真的是很美的一件事。

  • <2017.5.23>

    在快要咳出肺的第六夜,我突然意识到思念一个人就好像咳嗽,装不出,也停不下。

  • 2017.5.23

    快乐不是因为拥有的多,而是因为计较的少~早安!

  • 2017.5.23

    大早上 足够累。 嘈杂而混乱的场面 说实话 不想再经历第二次了…… 动车上遇到邻座的绅士的哥哥 谢谢! ………… ...

  • 2017.5.23

    愿望:下午4点之前把所有美食文章和情感文章发完 结果:如果我发完了,那么我晚上就可以有时间囤明天的文章 障碍:做事...

  • 2017.5.23

    科研小白,新的开始!

  • 2017.5.23

    又是一个下雨的日子,总是在这样的日子里,我想写点什么。 你会不会也有和我相同的感觉,偶尔有一天,你一时兴起,翻出收...

  • 2017.5.23

    處在這個時期的我們,不還念小時候,不幻想長大。並不能說是有多珍惜,只是這個時候的我們,有這數不清的煩惱,打不完的遊...

  • 2017.5.23

    今天是星期二啦!上午会展概论的老师提前了一节课下课!!^_^所以我们一下课就冲去地中海吃饭啦! 今天终于喝到...

网友评论

      本文标题:2017.5.23

      本文链接:https://www.haomeiwen.com/subject/uivnxxtx.html