网上搜了搜没有这方面的资料,, 自己听老师讲的也是一知半解,先把自己理解的记录下来吧,不对的地方以后再修改
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