
lua
媳妇控
linuxer
展开
-
lua语言中的函数概念
1. 不同于C,lua中的函数是一种first-class-value,这意味着: lua中的函数可以视作一种"值"存储到变量或table中; 可以作为其他函数的实参; 可以作为其他函数中的返回值; 可以嵌套在其他函数中被构造创建,而无需在设计阶段就定义好. 2. lua中的原创 2017-06-02 22:45:58 · 848 阅读 · 0 评论 -
lua中的迭代器分析
1. 所谓"迭代器",就是一种可以遍历某个集合中所有元素的机制,在lua中迭代器通常表示为函数,而具体的实现有很多种。 整个迭代的过程基本如下: 首先是通过迭代器工厂创建迭代器; 然后每次调用这个迭代器时,它就会从指定的集合中返回下一个元素; 直到最后一个元素返回后,迭代器就会返回nil,以此表示迭代结束原创 2017-06-04 16:12:21 · 839 阅读 · 0 评论 -
lua的代码块概念
1. chunk(代码块),可以是一条语句,也可以是一系列语句的集合,还可以是函数。 chunk拥有独立的"词法域",意味着chunk内部声明的局部变量和局部函数,仅在该chunk内可见。 chunk的定义方式主要有以下几种: [1]. do ... end 可以显式定义一个chunk的作用范围 [2]. 在交互模式下,通原创 2017-06-11 23:12:21 · 2561 阅读 · 0 评论 -
lua元表概念
元表,顾名思义,它本身就是一个table,再具体一点说,就是用来存放元方法的table。元表的作用就是修改一个值的行为(更确切的说,这是元方法的能力),需要注意的是,这种修改会覆盖掉原本该值可能存在的相应的预定义行为。1. lua中的每个值都可以有一个元表,只是table和userdata可以有各自独立的元表,而其他类型的值则共享其类型所属的单一元表。 lua代码中只能设置原创 2017-06-25 23:15:09 · 3313 阅读 · 0 评论 -
Lua中的栈概念
Lua中设计"栈"的目的就是解决Lua与C的通信。无论是Lua到C,还是C到Lua,所有的数据交换都需要通过"栈"来完成,此外还可以用"栈"来保存一些中间结果。"栈"解决了Lua和C语言之间存在的两大差异: [1]. lua自带垃圾回收机制,而C需要手动显式的释放内存 [2]. lua使用动态类型,而C使用静态类型"栈"实际是由lua管理的,"栈原创 2017-07-14 15:22:49 · 1270 阅读 · 0 评论 -
lua中的协程
协程,也叫协同式多线程,跟普通的多线程一样,一个协程就代表了一条独立的执行序列.协程和普通多线程的区别在于: 普通的多线程,也叫抢占式多线程,意味着线程间的调度通常是由操作系统来完成; 而协程间的调度并不通过操作系统,而是由当前运行的协程显式的进行切换.lua实现的协程是一种非对称式协程(asymmetric coroutine),这种协程机制需要通过两个函数来控制协程的执行,一个用于...原创 2018-04-16 20:09:34 · 1617 阅读 · 0 评论