Kotlin 中“fold”和“reduce”的區別
Kotlin 是一種跨平臺的靜態型別通用程式語言。Kotlin 提供了許多可選方法來遍歷集合。fold() 和 reduce() 是兩種不同的方法,兩者都有助於遍歷集合。在本文中,我們將瞭解如何以及何時使用這兩種方法。
示例 – fold()
如果我們想序列遍歷集合,那麼可以使用 fold()。
fold() 接受一個初始值和一個操作,對初始值執行操作。
有不同型別的 fold(),例如,foldRight() 從右到左摺疊。預設情況下,fold() 將從左到右遍歷。
以下示例演示瞭如何使用 fold() 遍歷集合。
fun main(args: Array<String>) { val MyTotal = listOf(1, 2, 3, 4, 5).fold(0) { initialValue, result -> result + initialValue } print("The sum of list members: " +MyTotal) }
輸出
fold() 將從第 0 個索引開始操作,並將結束其操作並將最終值儲存在 MyTotal 中。
The sum of list members: 15
示例 - reduce()
reduce() 是 Kotlin 中的預設方法之一,它有助於將給定的集合轉換為單個集合輸出結果。reduce() 是可以應用於給定集合的內建函式之一。它將第一個和第二個元素作為操作引數,這是 reduce() 和 fold() 之間的主要區別。
fun main(args: Array<String>) { val x = listOf(1,2,3,4,5,6,7,8,9) val y = x.reduce { y, vars -> y + vars } println("The value of reduce() ---> "+y) }
輸出
它將產生以下輸出
The value of reduce() ---> 45
在這裡,reduce() 從前兩個元素開始其操作,將函式應用於它們,並將結果儲存在“y”中。它繼續操作直到到達最後一個元素,並返回最終值。
廣告