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

Функция getOrPut

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

Синтаксис

inline fun <K, V> MutableMap<K, V>.getOrPut( key: K, defaultValue: () -> V ): V

Параметры

key - ключ для поиска значения в коллекции.

defaultValue - лямбда-функция, которая вычисляет и возвращает значение по умолчанию, если ключ отсутствует в коллекции.

Пример

Получим значение по ключу "apple" из изменяемого словаря:

val map = mutableMapOf<String, Int>( "banana" to 5, "orange" to 3 ) val res = map.getOrPut("apple") { 10 } println(map) println(res)

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

{banana=5, orange=3, apple=10} Int 10

Пример

Получим существующее значение по ключу "banana":

val map = mutableMapOf<String, Int>( "banana" to 5, "orange" to 3 ) val res = map.getOrPut("banana") { 10 } println(map) println(res)

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

{banana=5, orange=3} Int 5

Пример

Использование сложного вычисления значения по умолчанию:

val map = mutableMapOf<String, List<Int>>() val res = map.getOrPut("numbers") { val list = mutableListOf<Int>() for (i in 1..5) { list.add(i * 2) } list } println(map) println(res)

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

{numbers=[2, 4, 6, 8, 10]} List<Int> [2, 4, 6, 8, 10]

Для каких коллекций работает

Функция getOrPut работает только с изменяемыми словарями типа MutableMap. Она не доступна для:

  • Array - массивы
  • List и MutableList - списки
  • Set и MutableSet - множества
  • Неизменяемых коллекций Map

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

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