Kotlin之reduce、fold函数

高阶函数
reduce:将所提供的操作应用于集合元素并返回积累的结果
fold和reduce是一样的。
主要的区别是:
fold接受一个初始值并将其用作第一步的积累值,而reduce的第一步则将第一个和第二个元素作为第一步的操作参数。 
 
示例:
val numberList = listOf(1, 2, 3, 4)
        var ss = numberList.reduce { acc, i ->
            acc + i
        }
println(ss)
//最后打印的值是:10

 

如果要计算一个对象里面的Int值,如果一个账单的account

账单的实体类

data class PaymentOrderEntity(var orderId: String, var account: Int)
var paymentList = mutableListOf<PaymentOrderEntity>()
paymentList.add(PaymentOrderEntity("13543141241", 4))
paymentList.add(PaymentOrderEntity("32141341344", 5))
var ss = paymentList.map(PaymentOrderEntity::account).reduce { acc, i -> acc + i }
println(ss)
//最后输出的值是:9

  

示例:

 val numberList = listOf(1, 2, 3, 4)
 var ss = numberList.fold(1) { acc, i -> acc + i }
 println(ss)
//最后打印的值是:11
posted @ 2022-01-21 14:25  施行  阅读(246)  评论(0编辑  收藏  举报