You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby计算用户余额总和的代码能否优化为单行写法?

更简洁的单行写法

当然有,Ruby提供了几种更简洁的方式来实现这个累加逻辑:

  • 推荐写法(Ruby 2.4+):利用数组的sum方法结合块,直接一行搞定:

    def total_balance
      users.sum(&:balance)
    end
    

    sum方法会自动遍历数组,对每个元素执行块里的操作(这里就是取balance属性),然后累加所有结果,完全替代了你原来的循环逻辑。

  • 兼容旧版本Ruby的写法:如果你的Ruby版本低于2.4,可以用inject(别名reduce)来实现单行:

    def total_balance
      users.inject(0) { |total, user| total + user.balance }
    end
    

    这里inject(0)初始化累加器为0,然后每次迭代把当前用户的balance加到累加器上,最后返回总和。

这两种写法都比你原来的代码更简洁,同时保持了可读性。

内容的提问来源于stack exchange,提问作者marcHoll90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:25:18