我有这样的代码这样(我经常碰到这种方法签名,那我从Java未来的小白):红宝石重构散列循环方法的返回
def totals
t = 0
@data.each do |k, v|
t += v['totals'].to_i
end
t
end
@data
是哈希散列,每个内部散列值都有一个totals
密钥。正如你所看到的,我总结了所有的总数。
这可以用不同的风格进行简化或编程(我相信!这是RUBY的后续)?为什么我需要实例化t
?我不能直接从每个循环返回t
而没有最后的条件吗?
它只是不觉得干净! 哦等一下!我只记得块,但我会等你的答案...
UPDATE:
的数据结构是这样:
{ typeA: { items: [], totals: "10" }, typeB: { items: [], totals: "23" }}
我使用Rails!因此,如果Rails的特殊功能超越了Ruby的红色堆栈,那么它们也将非常棒!
接受更好的API参考,并提及Nermin的ActiveSupport,它的速度提高了6秒!强硬的呼唤! – mahatmanich
什么是'| _,v |',这是哈希的一些约定,但没有使用密钥? – mahatmanich
@mahatmanich对于未使用的变量,在块中使用'_'表示法 –