如果你接触过lua这种小巧的脚本语言,你就会经常接触到一个叫做协程的神奇概念。大多数脚本语言都有对协程不同程度的支持。但是大多编译语言,如C/C++,根本就不知道这样的东西存在。当然也很多人研究如何在编译语言实现协程的实现,轮子一个又一个的被发明。酷壳这篇文章《一个“蝇量级” C 语言协程库》说.....
分类:
其他好文 时间:
2014-08-22 12:14:56
阅读次数:
292
关于Coroutine说到coroutine就不的不说subroutine,也就是我们常用到的一般函数。调用一个函数开始执行,然后函数执行完成后就退出,再次调用的时候,再从头开始,调用之间是没有保存状态的;但是coroutine是可以在退出时如果再次被调用,可以从上一次退出的点继续执行。也就是说co...
分类:
其他好文 时间:
2014-08-21 17:00:54
阅读次数:
209
#-*-coding:utf-8-*-#python:2.x__author__='Administrator'#生成器表达式和itertools模块#yield中可以使用圆括号代替中括号iter0=(x**2forxinrange(10)ifx%2==0)foriter1initer0:print...
分类:
编程语言 时间:
2014-08-20 17:54:52
阅读次数:
221
有关Python中无限元素列表的实现方法。本文实例讲述了Python怎么实现无限元素列表的方法,具体实现可使用Yield来完成。下面所述的2段实例代码通过Python Yield 生成器实现了简单的无限元素列表。(www.jbxue.com)1.递增无限列表具体代码:def increment():...
分类:
编程语言 时间:
2014-08-19 07:07:43
阅读次数:
235
列表推导与生成器表达式当我们创建了一个列表的时候,就创建了一个可以迭代的对象:>>> squares=[n*n for n in range(3)]>>> for i in squares: print i 014这种创建列表的操作很常见,称为列表推导。但是像列表这样的迭代器,比如str、file等...
分类:
编程语言 时间:
2014-08-17 01:05:01
阅读次数:
330
1. 协程 在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花、怪物死亡后20秒再复活之类的。刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这样写。 1 float nowTime = 3.0f; 2 bool isDead = tru...
分类:
其他好文 时间:
2014-08-16 12:29:00
阅读次数:
246
一般来说当我们创建自定义集合的时候为了让其能支持foreach遍历,就只能让其实现IEnumerable接口(可能还要实现IEnumerator接口)但是我们也可以通过使用yield关键字构建的迭代器方法来实现foreach的遍历,且自定义的集合不用实现IEnumerable接口注:虽然不用实现I....
分类:
其他好文 时间:
2014-08-15 14:33:18
阅读次数:
202
从今天起开始正式学习Unity3d!!!!下面记录Monobehaviour相关内容。Monobehaviour执行顺序,图示很清晰,简单明了,可以通过此图洞悉协程(coroutine)的运行机制。
分类:
其他好文 时间:
2014-08-14 16:15:38
阅读次数:
1876
Unity里的Coroutine在帮助我们实现序列化事件时尤其方便。可以让事件依次发生,可以让事件A等待事件B结束后才开始执行。
但需要厘清几个基本概念。
Coroutines不是多线程,不是异步技术。Coroutines都在MainThread中执行,且每个时刻只有一个Coroutine在执行。 Coroutine是一个function,可以部分地执行,当条件满足时,未来会被再次执行直到整个...
分类:
其他好文 时间:
2014-08-14 14:06:28
阅读次数:
266
只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子:foriinalist:yieldi+1取出alist的每一项,然后把i + 1塞进去。然后通过调用取出每一项:=[1,2,3,4]forxinaddlist(alist):printx,这的确是yield应用的一个例子,但是,...
分类:
编程语言 时间:
2014-08-14 01:23:07
阅读次数:
275