Функция singleOrNull
Функция singleOrNull возвращает единственный элемент коллекции,
соответствующий заданному предикату. Если в коллекции нет элементов,
удовлетворяющих условию, или их несколько, функция возвращает null.
Работает с массивами Array, списками List, множествами Set
и другими типами коллекций.
Импорт
import kotlin.collections.singleOrNull
Синтаксис
// Без предиката
fun <T> Iterable<T>.singleOrNull(): T?
fun <T> Array<T>.singleOrNull(): T?
// С предикатом
inline fun <T> Iterable<T>.singleOrNull(
predicate: (T) -> Boolean
): T?
inline fun <T> Array<T>.singleOrNull(
predicate: (T) -> Boolean
): T?
Пример
Получим единственный элемент из списка с одним элементом:
val list = listOf(5)
val res = list.singleOrNull()
println(res)
Результат выполнения кода:
Int 5
Пример
Попробуем получить единственный элемент из пустого списка:
val list = emptyList<Int>()
val res = list.singleOrNull()
println(res)
Результат выполнения кода:
null
Пример
Попробуем получить единственный элемент из списка с несколькими элементами:
val list = listOf(1, 2, 3)
val res = list.singleOrNull()
println(res)
Результат выполнения кода:
null
Пример
Используем предикат для поиска единственного элемента, большего 3:
val list = listOf(1, 2, 4, 5)
val res = list.singleOrNull { it > 3 }
println(res)
Результат выполнения кода:
null
Пример
Найдем единственный элемент, равный 3:
val list = listOf(1, 2, 3, 4, 5)
val res = list.singleOrNull { it == 3 }
println(res)
Результат выполнения кода:
Int 3
Пример
Работа с массивом символов:
val arr = arrayOf('a', 'b', 'c')
val res = arr.singleOrNull { it == 'b' }
println(res)
Результат выполнения кода:
Char b
Смотрите также
-
функцию
single,
которая выбрасывает исключение вместо возврата null -
функцию
firstOrNull,
которая возвращает первый элемент илиnull -
функцию
lastOrNull,
которая возвращает последний элемент илиnull -
функцию
elementAtOrNull,
которая возвращает элемент по индексу илиnull