【问题标题】:Ruby oneliner for defining, iterating over array, adding and returning value?用于定义、迭代数组、添加和返回值的 Ruby oneliner?
【发布时间】:2022-11-02 21:58:34
【问题描述】:

我有这段代码:

def total_balance
  total = 0
  users.each { |user| total += user.balance }
  total
end

我想知道是否有更短的版本/一个衬里?

它基本上迭代用户并将他们的余额加在一起。

泰!

【问题讨论】:

    标签: ruby


    【解决方案1】:
    def total_balance
      users.sum { |user| user.balance }
      # or users.map(&:balance).sum
      # or users.reduce(0) { |total, user| total += user.balance }
      # or users.inject(0) { |total, user| total += user.balance }
    end
    

    使用injectreduce,我总是将累加器和对象混合在管道变量中。但这很容易通过调试解决:D

    【讨论】:

      猜你喜欢
      • 2019-02-12
      • 2013-09-04
      • 2013-11-10
      • 2019-12-24
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 2016-02-19
      • 2013-09-02
      相关资源
      最近更新 更多