2017-01-30 39 views
1

在我的模型我有這樣的:Enum.reduce返回一個模型而不是數字

# .... 
    def total_price(self) do 
    Enum.reduce(self.child_items, fn(x, acc) -> 
     x.price + acc 
    end) 
    end 

它返回一個ChildItem,而不是代表總價格的數字。爲什麼是這樣以及如何解決這個問題?

+0

你想通過'0'作爲第二個參數? 'Enum.reduce(self.child_items,0,fn(...) - > ... end)'? – Dogbert

回答

2

Enum.reduce有兩個版本:reduce/2和。有兩個參數的那個將第一個元素作爲初始累加器 - 在你的例子中是第一個元素ChildItem

你想要做的就是提供作爲蓄電池自己的初始投資成本0什麼:

def total_price(self) do 
    Enum.reduce(self.child_items, 0, fn(x, acc) -> 
     x.price + acc 
    end) 
    end 
相關問題