НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
438 of 1310 menu

Функция fold

Функция fold выполняет свертку элементов коллекции в одно значение. Она принимает начальное значение initial и функцию operation, которая последовательно применяется к каждому элементу коллекции и текущему значению аккумулятора. Работает с Array, List, Set и другими коллекциями, реализующими интерфейс Iterable.

Импорт

import kotlin.collections.fold

Синтаксис

inline fun <T, R> Iterable<T>.fold( initial: R, operation: (acc: R, T) -> R ): R
inline fun <T, R> Array<T>.fold( initial: R, operation: (acc: R, T) -> R ): R

Пример

Вычислим сумму всех элементов массива чисел:

val numbers = arrayOf(1, 2, 3, 4, 5) val sum = numbers.fold(0) { acc, num -> acc + num } println(sum)

Результат выполнения кода:

Int 15

Пример

Объединим все элементы списка строк в одну строку:

val words = listOf("a", "b", "c", "d", "e") val combined = words.fold("") { acc, word -> acc + word } println(combined)

Результат выполнения кода:

String "abcde"

Пример

Найдем максимальное значение в множестве чисел:

val numbersSet = setOf(10, 5, 8, 15, 3) val max = numbersSet.fold(Int.MIN_VALUE) { acc, num -> if (num > acc) num else acc } println(max)

Результат выполнения кода:

Int 15

Пример

Вычислим произведение всех элементов с начальным значением 1:

val nums = listOf(2, 3, 4) val product = nums.fold(1) { acc, num -> acc * num } println(product)

Результат выполнения кода:

Int 24

Смотрите также

  • функцию reduce,
    которая выполняет свертку без начального значения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить