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”中。它继续操作直到到达最后一个元素,并返回最终值。
广告