Функция defaultIfEmpty
Функция defaultIfEmpty используется для обработки пустых коллекций
в Kotlin. Если исходная коллекция пуста, функция возвращает список,
содержащий одно указанное значение по умолчанию. Если коллекция
не пуста, возвращается сама исходная коллекция.
Синтаксис
fun <T> Iterable<T>.defaultIfEmpty(defaultValue: T): List<T>
Параметры
defaultValue - значение, которое будет возвращено в виде
одноэлементного списка, если исходная коллекция окажется пустой.
Пример
Применим функцию к непустой коллекции:
val numbers = listOf(1, 2, 3, 4, 5)
val res = numbers.defaultIfEmpty(999)
println(res)
Результат выполнения кода:
List<Int> [1, 2, 3, 4, 5]
Пример
Применим функцию к пустой коллекции:
val emptyList = emptyList<Int>()
val res = emptyList.defaultIfEmpty(999)
println(res)
Результат выполнения кода:
List<Int> [999]
Пример
Использование со строковыми коллекциями:
val names = listOf("John", "Jane", "Mike")
val emptyNames = emptyList<String>()
val res1 = names.defaultIfEmpty("Unknown")
val res2 = emptyNames.defaultIfEmpty("Unknown")
println(res1)
println(res2)
Результат выполнения кода:
List<String> ['John', 'Jane', 'Mike']
List<String> ['Unknown']
Пример
Использование в цепочке операций:
val numbers = listOf(10, 20, 30, 40, 50)
val filteredNumbers = numbers.filter { it > 100 }
val res = filteredNumbers
.map { it * 2 }
.defaultIfEmpty(0)
println(res)
Результат выполнения кода:
List<Int> [0]
Смотрите также
-
функцию
ifEmpty,
которая выполняет действие для пустой коллекции -
функцию
isEmpty,
которая проверяет коллекцию на пустоту -
функцию
orEmpty,
которая возвращает пустую коллекцию для null значения -
функцию
firstOrNull,
которая возвращает первый элемент или null