如何在红宝石中传递块?

时间:2014-07-22 02:57:21

标签: ruby

class Array
  def new_map!(&block)
    self.replace( self.map(&block) )
  end
end

这里的自我指的是什么?如何以简单的外行人的方式传递一个块?一个具体的例子会有所帮助。

1 个答案:

答案 0 :(得分:0)

self指的是new_map!方法的接收者。传递块时,它会变为Proc并绑定到block变量。然后,表达式self.map(&block)将该proc作为块发送到map调用。