Scala中規約操作reduce與fold函式

2021-10-07 13:09:52 字數 646 閱讀 9378

規約操作是對容器的元素進行兩兩運算,將其「規約」為乙個值。

常用的規約方法有reduce和fold,兩個方法唯一的差別是, reduce是從容器的兩個元素開始規約,而fold則是從提供的初始值開始規約。

同樣地,對於無序容器而言, fold方法不保證規約時的遍歷順序,如要保證順序,請使用foldleft和foldright,其中,關於匿名函式引數的定義,與reduceleft和reduceright完全一樣。

最常見的規約方法是 reduce方法,它接受乙個二元函式f作為引數,首先將f作用在某兩個元素上並返回乙個值,然後再將f作用在上乙個返回值和容器的下乙個元素上,再返回乙個值,依此類推,最後容器中的所有值會被規約為乙個值。

@test

def testreduce(): unit =

輸出結果

55
與reduce方法非常類似的乙個方法是fold方法。fold方法是乙個雙引數列表的函式,第乙個引數列表接受乙個規約的初始值,第二個引數列表接受與reduce中一樣的二元函式引數。

@test

def testfold(): unit =

輸出結果

155

scala中結合元素的操作

col ele 將元素的新增到集合的尾部 seq ele col 將元素新增到集合的頭部 seq col ele,ele 將其他集合新增到集合尾部 set map col ele,ele 將子集合從集合中刪除 set map arraybuffer col1 col2 將其他集合新增到集合尾部 it...

scala中List的常見操作

參考自 下面是list的常用方法,當然了這不是所有的.但都是最常用的.具體看下面的demo.具體可以看 裡面的注釋 新建空listbuffer並新增元素 返回最後乙個元素 println list.last 在指定的位置 end 開始查詢元素最後出現的位置 println list.lastinde...

SCALA中簡單操作符

list集合 準備資料 var list1 list 1,2,3 var list2 list 4,5,6 操作符 會將 前的元素做為 後的元素中的第乙個元素進行儲存 println list1 list2 list list 1,2,3 4,5,6 println 2 list1 list 2,1...