Chinaunix

标题: ruby 中 关于 yield 的用法 [打印本页]

作者: i_love_ruby    时间: 2011-10-09 16:49
标题: ruby 中 关于 yield 的用法
ruby 中 关于 yield 的用法 谁能给讲一下?
如何去理解 yield ?


def fibUpTo(max)
  i1,i2=1,1 #parallel assignment
  while i1<=max   
    yield i1   
    i1, i2 =i2,i1+i2
  end
end
fibUpTo(1000){|f| print f," "}
作者: i_love_ruby    时间: 2011-10-10 09:20
这么没有人理我呢?
作者: zhlong8    时间: 2011-10-10 16:03
在此处调用跟在后面那个 block 中的代码,yield 后面的参数传给 block 当参数。就是个语法
作者: rubyish    时间: 2011-10-11 07:46
这玩意儿真好。
作者: 2gua    时间: 2011-10-12 09:11
我回复你了,你看看。
作者: 2gua    时间: 2011-10-12 09:16
i1是yield的参数,这个参数值传递给代码块{|f| print f," "}中的f。
作者: i_love_ruby    时间: 2011-10-18 10:57
回复 6# 2gua


    谢谢,我也是在前两天理解的。恩,是你说的这个意思
作者: 2gua    时间: 2011-10-18 19:33
回复 7# i_love_ruby


    甭客气。
作者: lax    时间: 2011-10-22 17:17
相当于
  1. block.call(i1)
复制代码
把参数传给block
作者: 2gua    时间: 2011-10-22 21:08
懒桃子




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2