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

Функция sumOf

Функция sumOf вычисляет сумму результатов применения заданной функции-преобразователя к каждому элементу коллекции. Работает с различными типами коллекций: Array, List, Set, Map и другими. Возвращает сумму в числовом типе, соответствующем результату работы функции-преобразователя.

Импорт

import kotlin.collections.sumOf

Синтаксис

// Для Int результатов inline fun <T> Array<out T>.sumOf(selector: (T) -> Int): Int inline fun <T> Iterable<T>.sumOf(selector: (T) -> Int): Int
// Для Long результатов inline fun <T> Array<out T>.sumOf(selector: (T) -> Long): Long inline fun <T> Iterable<T>.sumOf(selector: (T) -> Long): Long
// Для Double результатов inline fun <T> Array<out T>.sumOf(selector: (T) -> Double): Double inline fun <T> Iterable<T>.sumOf(selector: (T) -> Double): Double
// Для Float результатов inline fun <T> Array<out T>.sumOf(selector: (T) -> Float): Float inline fun <T> Iterable<T>.sumOf(selector: (T) -> Float): Float

Пример

Вычислим сумму длин строк в списке:

val strings = listOf("abc", "de", "fghij") val res: Int = strings.sumOf { it.length } println(res)

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

Int 10

Пример

Вычислим сумму квадратов чисел в массиве:

val numbers = arrayOf(1, 2, 3, 4, 5) val res: Int = numbers.sumOf { it * it } println(res)

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

Int 55

Пример

Вычислим сумму значений в Map:

val map = mapOf("a" to 10, "b" to 20, "c" to 30) val res: Int = map.sumOf { it.value } println(res)

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

Int 60

Пример

Вычислим сумму с преобразованием в Double:

val prices = listOf(10.5, 20.3, 15.7) val res: Double = prices.sumOf { it * 1.2 } // Добавляем налог 20% println(res)

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

Double 55.8

Поддерживаемые типы коллекций

Функция sumOf работает со следующими типами коллекций:

  • Array - массивы любых типов
  • List - списки (List, MutableList)
  • Set - множества (Set, MutableSet)
  • Map - словари (Map, MutableMap)
  • Iterable - любые итерируемые коллекции
  • Sequence - последовательности

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

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