Kotlin 数组 - reduceRight() 函数



Kotlin 数组的 reduceRight() 函数用于将数组的所有元素累积或组合成单个值,从最后一个元素开始,使用二元运算(由 lambda 函数指定)。

此函数从右到左对每个元素和当前累加器值应用运算。

异常

如果数组为空,此函数将抛出“UnsupportedOperationException”异常。

语法

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

inline fun <S, T : S> Array<out T>.reduceRight(
   operation: (T, acc: S) -> S
): S

参数

此函数接受一个 operation,它表示当前累加器值和一个元素,并计算下一个累加器值。

返回值

此函数返回一个与数组元素类型相同的单个值。

示例 1

以下是一个基本示例,用于演示 reduceRight() 函数的使用:

fun main(args: Array<String>) {
   val numbers = arrayOf(1, 2, 3, 4, 5, 6)
   val sum = numbers.reduceRight { num, acc -> acc + num }
   println("Sum of elements: $sum")
}

输出

以上代码生成以下输出:

Sum of elements: 21

示例 2

下面的示例创建一个数组,并使用 reduceRight() 函数将所有元素累积到单个值中:

fun main(args: Array<String>) {
   val strings = arrayOf<String>("a", "b", "c", "d", "e")
   val res = strings.reduceRight{ string, acc -> acc + string }
   println("Single value: $res")
}

输出

以下是输出:

Single value: edcba

示例 3

让我们看另一个例子。如果我们使用 reduceRight() 函数并且数组为空,输出是什么?

fun main(args: Array<String>) {
   val numbers = arrayOf<Int>()
   val sum = numbers.reduceRight { num, acc -> acc + num }
   println("Sum of elements: $sum")
}

输出

如果数组为空,以上代码将抛出异常:

Exception in thread "main" java.lang.UnsupportedOperationException: Empty array can't be reduced.
kotlin_arrays.htm
广告