我正在阅读Matz的书"Programming Ruby",在第9章,关于Threads的部分,我读了这段代码:
module Enumerable def concurrently map{|item| Thread.new{ yield item }}.each{|t| t.join} end end
我知道该map
方法用于对数组或集合的操作,在此示例中,它显示它没有self
或一些object
.
我很困惑map
这个例子中的工作原理.
在没有显式接收器的情况下调用方法会调用该方法,self
即使"它显示没有self
",它self
也隐式存在作为默认接收器.该方法或多或少与以下相同:
def concurrently self.map{|item| Thread.new{ yield item }}.each{|t| t.join} #^^^^^ This is implicit. end