class Arraydef to_h(default=nil)Hash[ *inject([]) { |a, value| a.push value, default || yield(value) } ]endend 看懂这个方法先理解这个 p Hash[*[1,2,3,4]]打印出{1=>2, 3=>4} 扩展了一个to_h方法.这个*就是将数组调用inject方法返回的数组平铺,我是这么理解的,当default为nil,也就是不传递参数给to_h时,把value传递给方法块运算,val…