Kotlin 数组 - runningReduce() 函数



Kotlin 数组的 runningReduce() 函数用于返回连续累加值的列表。它从左到右迭代数组中的每个元素,将操作应用于当前元素及其前面元素的累加结果。

传递给操作函数的 acc 值不应被修改;否则它会影响结果列表中的前一个值。

语法

以下是 Kotlin 数组 runningReduce() 函数的语法:

fun <S, T : S> Array<out T>.runningReduce(
    operation: (acc: S, T) -> S
): List<S>

参数

此函数接受一个参数 operation:一个函数,它接收当前累加值和元素,并计算下一个累加值。

返回值

该函数返回一个包含连续累加值的列表。

示例 1

以下是一个演示 runningReduce() 函数用法的基本示例:

fun main(args: Array<String>) {
   val numbers = arrayOf(1, 2, 3, 4, 5)
   val res = numbers.runningReduce({acc, num->acc + num})
   println("list: $res")
}

输出

以上代码生成以下输出:

list: [1, 3, 6, 10, 15]

示例 2

现在,让我们来看另一个示例。在这里,我们使用 runningReduce 函数将每个字符串累加到前面累加的字符串中:

fun main(args: Array<String>) {
   val characters = arrayOf<String>("a", "b", "c", "d", "e")
   val res = characters.runningReduce({acc, char->acc + char})
   println("list: $res")
}

输出

以下是输出:

list: [a, ab, abc, abcd, abcde]

示例 3

下面的示例解释了如果数组为空,runningReduce() 函数是否有效:

fun main(args: Array<String>) {
   val numbers = arrayOf<Int>()
   val list = numbers.runningReduce { acc, num -> acc + num}
   println("list: $list")
}

输出

如果数组为空,以上代码将产生一个空列表:

​
list: []
kotlin_arrays.htm
广告