- 博客(4)
- 资源 (1)
- 收藏
- 关注
原创 Lua学习笔记-9.3章-协同用做迭代器
例子:打印一个数组元素的所有的排列。直接写这样一个迭代函数来完成这个任务并不容易,但是写一个生成所有排列的递归函数并不难。思路:将数组中的每一个元素放到最后,依次递归生成所有剩余元素的排列。普通的loop实现代码:function printResult(a) for i = 1, #a do io.write(a[i], ' ') end i
2016-02-17 17:01:17 528
原创 Lua学习笔记-9.2章-管道和过滤器
1、producer-consumer问题couroutine的一个典型的例子就是producer-consumer问题。假设有这样两个函数,一个不停的produce一些值出来(例如从一个file中不停地读),另一个不断地consume这些值(例如,写入到另一个file中)。这两个函数的样子应该如下:function producer () while true do local
2016-02-17 16:18:19 1161
原创 Lua学习笔记-9.1章-协同程序
1、什么是协同程序 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,但是和其他协同程序共享全局变量等很多信息。 线程和协同程序的主要不同在于:在多处理器情况下,从概念上来讲多线程程序同时运行多个线程;而协同程序是通过协作来完成,在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时
2016-02-17 14:58:36 488
原创 Lua学习笔记-迭代器和泛型for
使用迭代器例子:--list迭代器,返回list中function values( t ) local i = 0; local n = table.getn(t)--table中元素个数 --print(n)--打印出表中元素的个数 return function() i = i + 1 return t[i] endendtb = {11,22,3
2016-02-15 14:22:57 664
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人