Функция getOrNull
Функция getOrNull
предоставляет безопасный способ получения элементов
из коллекций по индексу или ключу. Если элемент не существует (индекс выходит за границы,
ключ отсутствует), функция возвращает null
вместо выбрасывания исключения.
Применяется к массивам, спискам, множествам и ассоциативным массивам.
Импорт
// Функция доступна без импорта для стандартных коллекций
Синтаксис
// Для 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?
// Для Map
fun <K, V> Map<K, V>.getOrNull(key: K): V?
Пример
Получение элемента массива по индексу:
val arr = arrayOf('a', 'b', 'c', 'd', 'e')
val res1 = arr.getOrNull(2)
val res2 = arr.getOrNull(10)
println(res1)
println(res2)
Результат выполнения кода:
Char c
null
Пример
Получение элемента списка по индексу:
val list = listOf(1, 2, 3, 4, 5)
val res1 = list.getOrNull(0)
val res2 = list.getOrNull(7)
println(res1)
println(res2)
Результат выполнения кода:
Int 1
null
Пример
Получение элемента множества по индексу:
val set = setOf("apple", "banana", "cherry")
val res1 = set.getOrNull(1)
val res2 = set.getOrNull(5)
println(res1)
println(res2)
Результат выполнения кода:
String "banana"
null
Пример
Получение значения из ассоциативного массива по ключу:
val 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)
Результат выполнения кода:
Int 2
null
Синтаксис оператора
Для ассоциативных массивов также доступен операторный синтаксис:
val map = mapOf("a" to 1, "b" to 2, "c" to 3)
val res1 = map["b"]
val res2 = map["x"]
println(res1)
println(res2)
Результат выполнения кода:
Int 2
null
Смотрите также
-
функцию
getOrElse
,
которая возвращает значение по умолчанию вместо null -
функцию
firstOrNull
,
которая возвращает первый элемент илиnull
-
функцию
lastOrNull
,
которая возвращает последний элемент илиnull
-
функцию
elementAtOrNull
,
которая является синонимом getOrNull для коллекций