Kotlin 中"fold"和"reduce"的区别

kotlin mobile developmentapps/applications更新于 2026/1/5 1:37:17

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

Example - 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("reduce() 的值 ---> "+y)
}

输出

输出结果如下

reduce() 的值 ---> 45

这里,reduce() 从前两个元素开始运算,对它们应用函数,并将结果存储在 "y" 中。它继续运算,直到到达最后一个元素并返回最终值。


相关文章