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

Функция elementAtOrElse

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

Синтаксис

inline fun <T> Array<out T>.elementAtOrElse( index: Int, defaultValue: (Int) -> T ): T
inline fun <T> Iterable<T>.elementAtOrElse( index: Int, defaultValue: (Int) -> T ): T
inline fun <T> List<T>.elementAtOrElse( index: Int, defaultValue: (Int) -> T ): T

Пример

Получим элемент массива по существующему индексу:

val arr = arrayOf('a', 'b', 'c', 'd', 'e') val res = arr.elementAtOrElse(2) { 'x' } println(res)

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

Char 'c'

Пример

Попробуем получить элемент по несуществующему индексу:

val arr = arrayOf('a', 'b', 'c', 'd', 'e') val res = arr.elementAtOrElse(10) { 'x' } println(res)

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

Char 'x'

Пример

Использование с списком чисел:

val numbers = listOf(1, 2, 3, 4, 5) val res = numbers.elementAtOrElse(3) { it * 10 } println(res)

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

Int 4

Пример

Использование лямбды с передачей индекса:

val numbers = listOf(1, 2, 3, 4, 5) val res = numbers.elementAtOrElse(7) { index -> index * 100 } println(res)

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

Int 700

Пример

Работа с множеством:

val set = setOf('a', 'b', 'c', 'd', 'e') val res = set.elementAtOrElse(1) { 'z' } println(res)

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

Char 'b'

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

  • функцию elementAt,
    которая возвращает элемент по индексу или бросает исключение
  • функцию elementAtOrNull,
    которая возвращает элемент по индексу или null
  • функцию getOrElse,
    которая работает аналогично для мап и других коллекций
  • функцию getOrNull,
    которая возвращает элемент или null при отсутствии