【发布时间】:2011-06-16 11:05:56
【问题描述】:
我认为 Ruby 的 inject 方法非常适合计算总和。但是如果我必须计算一个平均值并使用inject,我总是会得到这样的结果:
total_ranked_query_results = @results.count { |result| result.class == RankedQueryResult }
@results.inject(0.0) { |sum, result| result.class == RankedResult ? sum + result.average_precision : sum } / total_ranked_query_results
所以我基本上必须迭代两次才能找出有多少RankedResults 才能计算平均值。
有没有更好的(rubyesque)方法来避免这种情况?
【问题讨论】:
标签: ruby coding-style iteration average