kotlin: reduce函数
一,功能
在 Kotlin
中,reduce()
和 fold()
都是对集合中的元素进行聚合操作的函数,将一个集合中的元素缩减成一个单独的值。
它们的使用方式非常相似,但是返回值略有不同。
区别:
reduce()
函数是对集合中的所有元素进行聚合处理,并返回最后一个合并处理值。fold()
函数除了合并所有元素之外,还可以接受一个初始值,并将其与聚合结果一起返回。
二,例子:
代码:
//处理按钮点击事件
binding.button1.setOnClickListener {
val list = listOf(1, 2, 3, 4, 5)
val sum = list.reduce { acc, i ->
println("acc:$acc, i:$i")
acc + i
}
println("总数是: $sum") // 15
}
运行结果:
三,例子:
代码:
//处理按钮点击事件
binding.button2.setOnClickListener {
val strings = listOf("apple", "banana", "orange", "pear")
val result = strings.reduce { acc, s -> "$acc, $s" }
println("拼接结果:"+result) // apple, banana, orange, pear
}
运行结果:
四,例子:
代码:
//处理按钮点击事件
binding.button3.setOnClickListener {
val arr = intArrayOf(1, 2, 4, 6, 10)
val res = arr.reduce { product, element ->
product * element
}
println("乘积:$res")
}
运行结果: