reduce Right Or Null
inline fun DoubleArray.reduceRightOrNull(operation: (Double, acc: Double) -> Double): Double?(source)
inline fun BooleanArray.reduceRightOrNull(operation: (Boolean, acc: Boolean) -> Boolean): Boolean?(source)
inline fun UShortArray.reduceRightOrNull(operation: (UShort, acc: UShort) -> UShort): UShort?(source)
Accumulates value starting with the last element and applying operation from right to left to each element and current accumulator value.
Returns null
if the array is empty.
Since Kotlin
1.4Samples
import kotlin.test.*
fun main() {
//sampleStart
val strings = listOf("a", "b", "c", "d")
println(strings.reduceRightOrNull { string, acc -> acc + string }) // dcba
println(strings.reduceRightIndexedOrNull { index, string, acc -> acc + string + index }) // dc2b1a0
println(emptyList<String>().reduceRightOrNull { _, _ -> "" }) // null
//sampleEnd
}
Parameters
operation
function that takes an element and current accumulator value, and calculates the next accumulator value.
Accumulates value starting with the last element and applying operation from right to left to each element and current accumulator value.
Returns null
if the list is empty.
Since Kotlin
1.4Samples
import kotlin.test.*
fun main() {
//sampleStart
val strings = listOf("a", "b", "c", "d")
println(strings.reduceRightOrNull { string, acc -> acc + string }) // dcba
println(strings.reduceRightIndexedOrNull { index, string, acc -> acc + string + index }) // dc2b1a0
println(emptyList<String>().reduceRightOrNull { _, _ -> "" }) // null
//sampleEnd
}
Parameters
operation
function that takes an element and current accumulator value, and calculates the next accumulator value.