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”中。它繼續操作直到到達最後一個元素,並返回最終值。

更新於:2021年11月23日

1K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告