Функция ifEmpty

Функция ifEmpty проверяет, является ли коллекция пустой, и возвращает либо саму коллекцию, если она не пустая, либо результат вычисления блока defaultValue, если коллекция пустая. Работает с массивами Array, списками List, множествами Set, ассоциативными массивами Map и другими типами коллекций.

Синтаксис

kotlininline fun <C : Collection<T>> C.ifEmpty(
  defaultValue: () -> C
): C
kotlininline fun <T> Array<out T>.ifEmpty(
  defaultValue: () -> Array<out T>
): Array<out T>

Пример

Проверим пустой список и вернем альтернативное значение:

kotlinval emptyList = emptyList<String>()
val res = emptyList.ifEmpty { listOf("default") }
println(res)

Результат выполнения кода:

kotlinList<String> ["default"]

Пример

Проверим непустой массив и вернем его же:

kotlinval array = arrayOf(1, 2, 3)
val res = array.ifEmpty { arrayOf(0) }
println(res.contentToString())

Результат выполнения кода:

kotlinArray<Int> [1, 2, 3]

Пример

Проверим пустое множество и вернем вычисляемое значение:

kotlinval emptySet = emptySet<Char>()
val res = emptySet.ifEmpty { 
  setOf('a', 'b', 'c') 
}
println(res)

Результат выполнения кода:

kotlinSet<Char> ['a', 'b', 'c']

Пример

Проверим ассоциативный массив и вернем значение по умолчанию:

kotlinval emptyMap = emptyMap<String, Int>()
val res = emptyMap.ifEmpty { 
  mapOf("default" to 0) 
}
println(res)

Результат выполнения кода:

kotlinMap<String, Int> {default=0}

Смотрите также

  • функцию isEmpty,
    которая проверяет коллекцию на пустоту
  • функцию isNotEmpty,
    которая проверяет коллекцию на непустоту
  • функцию orEmpty,
    которая возвращает пустую коллекцию для null-значений
  • функцию defaultIfEmpty,
    которая возвращает коллекцию с одним элементом по умолчанию