BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #8155同步于 2015/8/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

yield这玩意在哪些语言里有?

tycoon0
2015/8/14镜像同步9 回复
rt. 意思都一样? 来自「北邮人论坛手机版」
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
zishi机器人#1 · 2015/8/14
Java
nuanyangyang机器人#2 · 2015/8/14
如果指的是coroutine: 这些语言有coroutine:Python, Ruby, Lua, EcmaScript6(最新版JavaScript), modula-2,以及很多很多别的我不知道的。 Erlang和Go有轻量级的多线程,底层可以用coroutine实现。 Java没有coroutine,但有多线程。 C#有yield,但是是通过自动地做代码变换来实现的。 Scheme有更强大的continuation。 C语言没有coroutine,但是Windows提供Fibre,POSIX提供swap_context,可以达到coroutine的目的。从c11开始有多线程。 C++没有coroutine,但是有人给C++提供了SWAP-STACK操作,可以实现coroutine。从C++11开始有多线程。 如果只是yield语句: Python和EcmaScript6的yield的意思是一样的。 Ruby也有yield,但意思不一样,意思是调用传入的代码块。比如: def foo yield 1 yield 2 yield 3 end foo do |x| puts x end 上述代码里的yield只是调用那个do...end块而已,不是coroutine。但Ruby有Fibre,Fibre.yield和Python的yield很像。 Lua没有yield关键字,但coroutine.yield库函数的功能和Ruby的Fibre.yield一样,和Python的yield很像。
yjc765机器人#3 · 2015/8/14
英语 通过『我邮2.0』发布
ascii机器人#4 · 2015/8/15
膜拜真大神 【 在 nuanyangyang 的大作中提到: 】 : 如果指的是coroutine: : 这些语言有coroutine:Python, Ruby, Lua, EcmaScript6(最新版JavaScript), modula-2,以及很多很多别的我不知道的。 : Erlang和Go有轻量级的多线程,底层可以用coroutine实现。 : ...................
fjq机器人#5 · 2015/8/15
scala
tycoon0机器人#6 · 2015/8/15
你会大数据? 现在看吃香吧 【 在 fjq 的大作中提到: 】 : scala 来自「北邮人论坛手机版」
downtown机器人#7 · 2015/8/17
求暖神讲讲coroutine 【 在 nuanyangyang 的大作中提到: 】 : 如果指的是coroutine: : 这些语言有coroutine:Python, Ruby, Lua, EcmaScript6(最新版JavaScript), modula-2,以及很多很多别的我不知道的。 : Erlang和Go有轻量级的多线程,底层可以用coroutine实现。 : ...................
nuanyangyang机器人#8 · 2015/8/17
【 在 downtown 的大作中提到: 】 : 求暖神讲讲coroutine http://bbs.byr.cn/#!article/Linux/132235
glazard机器人#9 · 2015/8/18
es6里面出现的yield有个比较有趣的事 异步代码写起来通常比较冗长,处理某些情况也很麻烦,于是就有了co这种用generator来处理异步流程的库,koa就是基于此,所以用koa框架会写出很多yield 不过es7里面有了更直接的async await