| 赞 | 153 |
| VIP | |
| 好人卡 | |
| 积分 | 93 |
| 经验 | |
| 最后登录 | 2024-5-6 |
| 在线时间 | 2504 小时 |
- 梦石
- 0
- 星屑
- 9292
- 在线时间
- 2504 小时
- 注册时间
- 2011-5-20
- 回帖
- 14521

|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 chd114 于 2018-1-4 18:41 编辑
@RaidenInfinity
[pre lang="ruby"]def sum(base = 0)
(block_given? ? inject(base) { |a, e| a + yield(e) } : inject(base, :+))
end[/pre]
這部分是求和的腳本
我做了一個求平均的腳本
[pre lang="ruby"] 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[/pre]
但是&marry似乎封裝了沒有實際效果?
出現了ArgumentError wrong number of arguments(1 for 0)的錯誤 |
|