当前位置:首页 > 网站编程 > Ruby教程 > 正文

Rubyyield使用方法和教程

  • 2014-05-23
  • 来源:阿龙网
  • 作者:
  • 人气:0
  • 评论:0
Ruby的yield是一个挺不好理解的一个东西,python也有yield这个关键字,但只是在生成器里面使用到,可以理解为记录这个代码的执行位置

Ruby的yield是一个挺不好理解的一个东西, python也有yield这个关键字,但只是在生成器里面使用到,可以理解为记录这个代码的执行位置,下次执行时从这个位置接着执行。 而ruby的yield却完全不一样, 在函数里面的有一条yield语句,到时候执行的时候可以执行函数类外的block。而且这个block可以有自己的context, 感觉有点像callback,又有点像c里面的宏定义。

有人说yield就充当一个占位符的作用,函数先给一个占位符,这个函数如同一个纯需函数一样不能直接调用,必须用block把这个位坑给添了才能使用这个函数。 这个说法是挺形象的,作用上这样说是对的。但yield还有另外一些可以深究的地方, yield的block在执行的时候是有context切换的,像函数的压栈调用,但yield又可以使用调用函数的变量,像是在同一个域内。或者说yield就是一个匿名函数调用?block 是传给函数的一个参数, 这是个可执行的代码块,和普通变量不一样,是可执行的, yield去调用这个代码块,这个说法到是可以说的通。那用yield实现的微线程又是怎么作的呢,如何理解?

相关推荐

网友评论

共有0条评论

您的评论需要经过审核才能显示!

热门评论

热门排行

图文信息

相关专题

最新信息