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" 中。它继续运算,直到到达最后一个元素并返回最终值。

