如何重写inject方法,但在红宝石中,基本上是
(5..10).inject { |sum, n| sum + n } == (5..10).new_inject { |sum, n| sum + n }
评估为true
。那是没有使用method_missing ...
编辑:
根据要求,这是我到目前为止所得到的:
module Enumerable
def new_inject(&block)
if block_given?
a ||= self.first
self[1..-1].each do |s|
@result = block.call(a,s)
end
end
@result
end
end