網上搜了搜沒有這方面的資料,, 自己聽老師講的也是一知半解,先把自己了解的記錄下來吧,不對的地方以後再修改
val arr = List(List(1, 2, 3), List(3, 4, 5), List(2), List(0))
arr.aggregate(0)(_+_.reduce(_+_),_+_)
運算步驟:
(_+_.reduce(_+_)) 先計算 list1 1+2+3 6
(_+_.reduce(_+_)) 再計算list2 3+4+5 12
(_+_.reduce(_+_)) list3計算 2
(_+_.reduce(_+_)) list4計算 0
以上局部變量就計算完了
當list1計算出來的時候就放到 _+_ 初始值為0 + 6
然後當list2計算出來的時候 _+_ 值 為 6+12
後面依次相加 ....
下面這兩種寫法都可以
arr.aggregate(10)(_+_.sum,_+_)
arr.par.aggregate(10)(_+_.sum,_+_)
.par