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
廣告