1
timonwong 2013-09-01 09:48:35 +08:00
continuation
|
2
mikawudi 2013-09-01 11:13:54 +08:00
csharp的?感觉更像迭带器模式的语法糖.
|
3
msg7086 2013-09-01 20:41:18 +08:00 via iPad
从Ruby角度来说,相当于call block
|
4
cj1324 2013-09-01 23:47:48 +08:00
yield 还能带参数。
|
5
harmy 2013-09-01 23:59:22 +08:00
你可以把它想象成小叮当的传送门
|
6
Ryannnnnnn 2013-09-02 00:19:33 +08:00
你可以把它想象成小叮当的传送门
|
7
Mutoo 2013-09-02 09:25:55 +08:00
协同程序(coroutine)是另一种有趣的开发方式,用起来确实有点像“断点”的感觉,但是它只pause一个coroutine而不影响其它线程。并且可以在yield和resume的时候交换数据。而且很容易用协同程序实现waitSecond();waithSignal();之类的方法,所以经常被使用在游戏开发中,实现剧情对话、AI之类的。
相比之下还有另一种开发就是比较常见的 javascript 异步程序。 |
8
yakczh OP thead.join呢,也应该是pause主线程吧
|
9
seeker 2013-09-02 10:17:25 +08:00
那个语言的yeild?c# ruby scala还是其他?
|
10
dorentus 2013-09-02 10:27:07 +08:00
|
12
6711411 2013-09-02 10:44:18 +08:00
|
13
msg7086 2013-09-02 16:32:43 +08:00
@dorentus 好像实现起来稍微有一些不同
比如ruby里 def f: yield 5 print 'a' end f { print i } 这里的yield 5就相当于 (print i)(5) python似乎会把这个流程反过来做?因为根据说明上写的,yield以后的常规语句 print 'a' 会被略过执行。 求指导 |
14
tioover 2013-09-03 01:59:19 +08:00 via Android
才想起来,我写程序那么多年还没用过断点呢
|