【发布时间】:2022-11-02 21:58:34
【问题描述】:
我有这段代码:
def total_balance
total = 0
users.each { |user| total += user.balance }
total
end
我想知道是否有更短的版本/一个衬里?
它基本上迭代用户并将他们的余额加在一起。
泰!
【问题讨论】:
标签: ruby
我有这段代码:
def total_balance
total = 0
users.each { |user| total += user.balance }
total
end
我想知道是否有更短的版本/一个衬里?
它基本上迭代用户并将他们的余额加在一起。
泰!
【问题讨论】:
标签: ruby
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
使用inject 或reduce,我总是将累加器和对象混合在管道变量中。但这很容易通过调试解决:D
【讨论】: