- 博客(6)
- 收藏
- 关注
原创 Lua 多状态的迭代器
多状态的迭代器array = {"Lua", "Tutorial"}function elementIterator (collection) local index = 0 local count = #collection -- 闭包函数 return function () index = index + 1 i
2017-07-02 22:45:49 535
原创 Lua 迭代器
范性for的执行过程:首先,初始化,计算in后面表达式的值,表达式应该返回范性for需要的三个值:迭代函数、状态常量、控制变量;与多值赋值一样,如果表达式返回的结果个数不足三个会自动用nil补足,多出部分会被忽略。第二,将状态常量和控制变量作为参数调用迭代函数(注意:对于for结构来说,状态常量没有用处,仅仅在初始化时获取他的值并传递给迭代函数)。第三,将迭代函数返回的值赋给变
2017-07-02 22:12:57 206
原创 Lua 变量
变量在使用前,必须在代码中进行声明,即创建该变量。编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。Lua 变量有三种类型:全局变量、局部变量、表中的域。Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。局部变量的作用域为从声明位置开始到所在语句块结束。变量的默认值均为 nil。
2017-07-01 14:45:21 293
原创 Lua Thread
在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停
2017-07-01 12:31:08 840
原创 Lua Function学习
Lua 的基本类型function1 function 被认为是第一类值(First-Class),可以存储在变量里。function fact(n) if n==0 then return 1; else return n * fact(n-1); endendprint(fact(4));f1=fact;print(f1(3));
2017-07-01 12:09:18 397
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人