Функция ifEmpty
Функция ifEmpty
проверяет, является ли коллекция пустой,
и возвращает либо саму коллекцию, если она не пустая,
либо результат вычисления блока defaultValue
, если коллекция пустая.
Работает с массивами Array
, списками List
,
множествами Set
, ассоциативными массивами Map
и другими типами коллекций.
Синтаксис
inline fun <C : Collection<T>> C.ifEmpty(
defaultValue: () -> C
): C
inline fun <T> Array<out T>.ifEmpty(
defaultValue: () -> Array<out T>
): Array<out T>
Пример
Проверим пустой список и вернем альтернативное значение:
val emptyList = emptyList<String>()
val res = emptyList.ifEmpty { listOf("default") }
println(res)
Результат выполнения кода:
List<String> ["default"]
Пример
Проверим непустой массив и вернем его же:
val array = arrayOf(1, 2, 3)
val res = array.ifEmpty { arrayOf(0) }
println(res.contentToString())
Результат выполнения кода:
Array<Int> [1, 2, 3]
Пример
Проверим пустое множество и вернем вычисляемое значение:
val emptySet = emptySet<Char>()
val res = emptySet.ifEmpty {
setOf('a', 'b', 'c')
}
println(res)
Результат выполнения кода:
Set<Char> ['a', 'b', 'c']
Пример
Проверим ассоциативный массив и вернем значение по умолчанию:
val emptyMap = emptyMap<String, Int>()
val res = emptyMap.ifEmpty {
mapOf("default" to 0)
}
println(res)
Результат выполнения кода:
Map<String, Int> {default=0}
Смотрите также
-
функцию
isEmpty
,
которая проверяет коллекцию на пустоту -
функцию
isNotEmpty
,
которая проверяет коллекцию на непустоту -
функцию
orEmpty
,
которая возвращает пустую коллекцию для null-значений -
функцию
defaultIfEmpty
,
которая возвращает коллекцию с одним элементом по умолчанию