鉴于map()
由Enumerable
定义,Hash#map
yield
两个变量如何阻止? Hash
覆盖Enumerable#map()
吗?
这是一个小例子,为了好玩:
ruby-1.9.2-p180 :001 > {"herp" => "derp"}.map{|k,v| k+v}
=> ["herpderp"]
答案 0 :(得分:16)
它不会覆盖地图
Hash.new.method(:map).owner # => Enumerable
它产生两个变量,这些变量被收集到一个数组中
class Nums
include Enumerable
def each
yield 1
yield 1, 2
yield 3, 4, 5
end
end
Nums.new.to_a # => [1, [1, 2], [3, 4, 5]]