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

Функция getValue

Функция getValue предоставляет безопасный способ получения значения из коллекции по ключу. Она работает с типами Map, MutableMap, List, Array и другими коллекциями, поддерживающими доступ по индексу или ключу. Основное преимущество функции - гарантия того, что значение существует в коллекции, иначе будет выброшено исключение NoSuchElementException.

Импорт

import kotlin.collections.getValue

Синтаксис

// Для Map и MutableMap operator fun <K, V> Map<K, V>.getValue(thisRef: Any?, property: KProperty<*>): V // Для List и Array operator fun <T> List<T>.getValue(thisRef: Any?, property: KProperty<*>): T operator fun <T> Array<T>.getValue(thisRef: Any?, property: KProperty<*>): T

Пример

Использование с Map для безопасного получения значения:

val map = mapOf("a" to 1, "b" to 2, "c" to 3) val value: Int = map.getValue("b") println(value)

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

Int 2

Пример

Использование с List для безопасного получения элемента по индексу:

val list = listOf(10, 20, 30, 40, 50) val element: Int = list.getValue(2) println(element)

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

Int 30

Пример

Использование с Array для безопасного получения элемента:

val array = arrayOf('a', 'b', 'c', 'd', 'e') val char: Char = array.getValue(3) println(char)

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

Char 'd'

Пример

Генерация исключения при отсутствии ключа в Map:

val map = mapOf("x" to 100, "y" to 200) try { val result = map.getValue("z") println(result) } catch (e: NoSuchElementException) { println("Key not found: ${e.message}") }

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

Key not found: Key z is missing in the map.

Пример

Использование с делегированными свойствами:

val config = mapOf("timeout" to 5000, "retries" to 3) class Connection { val timeout by config val retries by config } val conn = Connection() println("Timeout: ${conn.timeout}, Retries: ${conn.retries}")

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

Timeout: 5000, Retries: 3

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

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

  • Map и MutableMap - доступ по ключу
  • List - доступ по индексу
  • Array - доступ по индексу
  • Set - не поддерживается, так как Set не предоставляет доступ по ключу или индексу

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

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