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)
        }

运行结果:

image

三,例子

代码:

        //处理按钮点击事件
        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)
        }

运行结果:

image

 

posted @ 2025-08-16 08:10  刘宏缔的架构森林  阅读(37)  评论(0)    收藏  举报