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+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告