reduceIndexed
inline fun <S, T : S> Array<out T>.reduceIndexed( operation: (index: Int, acc: S, T) -> S ): S
inline fun ByteArray.reduceIndexed( operation: (index: Int, acc: Byte, Byte) -> Byte ): Byte
inline fun ShortArray.reduceIndexed( operation: (index: Int, acc: Short, Short) -> Short ): Short
inline fun IntArray.reduceIndexed( operation: (index: Int, acc: Int, Int) -> Int ): Int
inline fun LongArray.reduceIndexed( operation: (index: Int, acc: Long, Long) -> Long ): Long
inline fun FloatArray.reduceIndexed( operation: (index: Int, acc: Float, Float) -> Float ): Float
inline fun DoubleArray.reduceIndexed( operation: (index: Int, acc: Double, Double) -> Double ): Double
inline fun BooleanArray.reduceIndexed( operation: (index: Int, acc: Boolean, Boolean) -> Boolean ): Boolean
inline fun CharArray.reduceIndexed( operation: (index: Int, acc: Char, Char) -> Char ): Char
@ExperimentalUnsignedTypes inline fun UIntArray.reduceIndexed( operation: (index: Int, acc: UInt, UInt) -> UInt ): UInt
@ExperimentalUnsignedTypes inline fun ULongArray.reduceIndexed( operation: (index: Int, acc: ULong, ULong) -> ULong ): ULong
@ExperimentalUnsignedTypes inline fun UByteArray.reduceIndexed( operation: (index: Int, acc: UByte, UByte) -> UByte ): UByte
@ExperimentalUnsignedTypes inline fun UShortArray.reduceIndexed( operation: (index: Int, acc: UShort, UShort) -> UShort ): UShort
Накапливает значение, начиная с первого элемента, и применяет операцию слева направо к текущему накопленному значению и каждому элементу с его индексом в исходном массиве.
Выбрасывает исключение, если этот массив пустой. Если массив может быть пустым ожидаемым образом, используйте reduceIndexedOrNull вместо него. Он возвращает null , когда его получатель пустой.
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
val strings = listOf("a", "b", "c", "d")
println(strings.reduce { acc, string -> acc + string }) // abcd
println(strings.reduceIndexed { index, acc, string -> acc + string + index }) // ab1c2d3
// emptyList<Int>().reduce { _, _ -> 0 } // will fail
//sampleEnd
}Параметры
operation - функция, которая принимает индекс элемента, текущее накопленное значение и сам элемент, и вычисляет следующее накопленное значение.
inline fun <S, T : S> Iterable<T>.reduceIndexed( operation: (index: Int, acc: S, T) -> S ): S
Накапливает значение, начиная с первого элемента, и применяет операцию слева направо к текущему накопленному значению и каждому элементу с его индексом в исходном наборе.
Выбрасывает исключение, если этот набор пустой. Если набор может быть пустым ожидаемым образом, используйте reduceIndexedOrNull вместо него. Он возвращает null , когда его получатель пустой.
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
val strings = listOf("a", "b", "c", "d")
println(strings.reduce { acc, string -> acc + string }) // abcd
println(strings.reduceIndexed { index, acc, string -> acc + string + index }) // ab1c2d3
// emptyList<Int>().reduce { _, _ -> 0 } // will fail
//sampleEnd
}Параметры
operation - функция, которая принимает индекс элемента, текущее накопленное значение и сам элемент, и вычисляет следующее накопленное значение.
© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/reduce-indexed.html