ruby iterator map 的实现机制

class Array
  def each_f()
    a=[]
    i=0
    while i < self.size do
    a << (yield i)
    i += 1
    end
    a
 end

  def map_f ()
    each_f do |x|
     yield  self[x]
    end   
  end
 end
   
 a=[1,2,3,4]
 b= a.map_f {|x|x+2}
 puts b  #[3,4,5,6]

 

posted @ 2009-04-18 18:00  麦飞  阅读(199)  评论(0编辑  收藏  举报