АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
426 of 1310 menu
Бесплатный тренинг по PHP: форматирование строк. Начало 25 сентября. Жми для записи!

Функция sum

Функция sum вычисляет сумму всех элементов числовой коллекции. Применяется к коллекциям, содержащим числовые типы данных: Int, Double, Float, Long, Short и Byte. Для нечисловых типов данных используется функция sumOf.

Импорт

import kotlin.collections.sum

Синтаксис

fun Array<Int>.sum(): Int fun Array<Double>.sum(): Double fun Array<Float>.sum(): Float fun Array<Long>.sum(): Long fun Array<Short>.sum(): Short fun Array<Byte>.sum(): Int
fun Iterable<Int>.sum(): Int fun Iterable<Double>.sum(): Double fun Iterable<Float>.sum(): Float fun Iterable<Long>.sum(): Long fun Iterable<Short>.sum(): Short fun Iterable<Byte>.sum(): Int

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

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

  • Array - массивы числовых типов
  • List - списки числовых типов
  • Set - множества числовых типов
  • MutableList - изменяемые списки числовых типов
  • MutableSet - изменяемые множества числовых типов
  • Любые другие реализации Iterable с числовыми элементами

Для ассоциативных массивов Map функция sum не применяется, так как они не являются числовыми коллекциями.

Пример

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

val numbers = arrayOf(1, 2, 3, 4, 5) val res = numbers.sum() println(res)

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

Int 15

Пример

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

val doubles = listOf(1.5, 2.3, 3.7) val res = doubles.sum() println(res)

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

Double 7.5

Пример

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

val set = setOf(10, 20, 30, 40) val res = set.sum() println(res)

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

Int 100

Пример

Для пустой коллекции функция возвращает 0:

val emptyList = emptyList<Int>() val res = emptyList.sum() println(res)

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

Int 0

Ошибки

При попытке использовать sum с нечисловыми типами данных компилятор выдаст ошибку:

val strings = listOf("a", "b", "c") // Ошибка компиляции: // None of the following functions can be called with the arguments supplied // val res = strings.sum()

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

  • функцию sumOf,
    которая вычисляет сумму после преобразования элементов
  • функцию average,
    которая вычисляет среднее арифметическое элементов
  • функцию count,
    которая подсчитывает количество элементов в коллекции
  • функцию fold,
    которая выполняет агрегацию элементов с начальным значением