Функция 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 для коллекций