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
廣告
© . All rights reserved.