加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 chd114 于 2018-1-4 18:41 编辑
@RaidenInfinity
def sum(base = 0) (block_given? ? inject(base) { |a, e| a + yield(e) } : inject(base, :+)) end
def sum(base = 0)
(block_given? ? inject(base) { |a, e| a + yield(e) } : inject(base, :+))
end
這部分是求和的腳本
我做了一個求平均的腳本
def avg(base = 0) if block_given? marry=lambda {yield} sum(base,&marry)/size else 0 end #block_given? ? sum(base)yield : sum(base) #(self.sum base yield)/size #n=base;collect{|s|n+=yield(s)};n/size #(block_given? ? inject(base) { |a, e| a + yield(e) } : inject(base, :+))/size end
def avg(base = 0)
if block_given?
marry=lambda {yield}
sum(base,&marry)/size
else
0
end
#block_given? ? sum(base)yield : sum(base)
#(self.sum base yield)/size
#n=base;collect{|s|n+=yield(s)};n/size
#(block_given? ? inject(base) { |a, e| a + yield(e) } : inject(base, :+))/size
end
但是&marry似乎封裝了沒有實際效果?
出現了ArgumentError wrong number of arguments(1 for 0)的錯誤 |