kotlin: fold函数
一,功能
folder 合并函数 接收一个 初始的 累加器值 , 之后该值 会 根据 匿名函数 的执行结果 进行更新 ;
fold方法会在最开始把accumulator累加值设置为initial的值,之后遍历集合中的所有元素,
让累加值和每个元素element做操作,最后返回累加值。
二,例子
代码:
//处理按钮点击事件
binding.button1.setOnClickListener {
val arr = intArrayOf(1, 2, 4, 6, 10)
val res1 = arr.fold(1) { product, element ->
println("累加器值 : $product, 当前数字 : $element")
product * element
}
println("累加器值为1时最终乘积:"+res1)
val res2 = arr.fold(2) { product, element ->
println("累加器值 : $product, 当前数字 : $element")
product * element
}
println("累加器值为2时最终乘积:"+res2)
}
运行结果:

三,例子
代码:
//处理按钮点击事件
binding.button2.setOnClickListener {
//每个数平方的和:
val numbers1 = listOf(1, 2, 3).fold(0) {
accumulator, number ->
println("累加器值 : $accumulator, number : $number")
accumulator + number * number
}
println("每个数平方的和:"+numbers1)
//每个数乘以2的和
val numbers2 = listOf(1, 2, 3).fold(0) {
accumulator, number ->
println("累加器值 : $accumulator, number : $number")
accumulator + number*2
}
println("每个数乘以2的和:"+numbers2)
}
运行结果:

浙公网安备 33010602011771号