Функция getOrNull

Функция getOrNull предоставляет безопасный способ получения элементов из коллекций по индексу или ключу. Если элемент не существует (индекс выходит за границы, ключ отсутствует), функция возвращает null вместо выбрасывания исключения. Применяется к массивам, спискам, множествам и ассоциативным массивам.

Импорт

kotlin// Функция доступна без импорта для стандартных коллекций

Синтаксис

kotlin// Для Array, List, Set
fun <T> Array<out T>.getOrNull(index: Int): T?
fun <T> List<T>.getOrNull(index: Int): T?
fun <T> Set<T>.getOrNull(index: Int): T?
kotlin// Для Map
fun <K, V> Map<K, V>.getOrNull(key: K): V?

Пример

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

kotlinval arr = arrayOf('a', 'b', 'c', 'd', 'e')
val res1 = arr.getOrNull(2)
val res2 = arr.getOrNull(10)

println(res1)
println(res2)

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

kotlinChar c
null

Пример

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

kotlinval list = listOf(1, 2, 3, 4, 5)
val res1 = list.getOrNull(0)
val res2 = list.getOrNull(7)

println(res1)
println(res2)

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

kotlinInt 1
null

Пример

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

kotlinval set = setOf("apple", "banana", "cherry")
val res1 = set.getOrNull(1)
val res2 = set.getOrNull(5)

println(res1)
println(res2)

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

kotlinString "banana"
null

Пример

Получение значения из ассоциативного массива по ключу:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3)
val res1 = map.getOrNull("b")
val res2 = map.getOrNull("x")

println(res1)
println(res2)

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

kotlinInt 2
null

Синтаксис оператора

Для ассоциативных массивов также доступен операторный синтаксис:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3)
val res1 = map["b"]
val res2 = map["x"]

println(res1)
println(res2)

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

kotlinInt 2
null

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

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