我正在创建一个 Rails 应用程序并在我的一种方法中使用了此代码
item_numbers.inject(0) {|sum, i| sum + i.amount}
item_numbers 是我的 item_numbers 表中的对象数组。我应用于他们的 .amount 方法在单独的表中查找 item_number 的值并将其作为 BigDecimal 对象返回。显然,inject 方法会添加所有返回的 i.amount 对象,这样就可以了。
我只是好奇为什么当我写这个声明时它不起作用
item_numbers.inject {|sum, i| sum + i.amount}
根据我值得信赖的镐书,这些应该是等价的。是因为 i.amount 是 BigDecimal 吗?如果是这样,为什么它现在有效?如果没有,那为什么它不起作用。