ifEmpty
inline
fun
<
C
,
R
>
C
.
ifEmpty
(
defaultValue
:
(
)
->
R
)
:
R
where
C
:
Array
<
*
>
,
C
:
R
(source)
Returns this array if it's not empty or the result of calling defaultValue function if the array is empty.
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
val emptyArray: Array<Any> = emptyArray()
val emptyOrNull: Array<Any>? = emptyArray.ifEmpty { null }
println(emptyOrNull) // null
val emptyOrDefault: Array<Any> = emptyArray.ifEmpty { arrayOf("default") }
println(emptyOrDefault.contentToString()) // [default]
val nonEmptyArray = arrayOf(1)
val sameArray = nonEmptyArray.ifEmpty { arrayOf(2) }
println("nonEmptyArray === sameArray is ${nonEmptyArray === sameArray}") // true
//sampleEnd
}
Returns this map if it's not empty or the result of calling defaultValue function if the map is empty.
import kotlin.test.*
import java.util.*
fun main(args: Array<String>) {
//sampleStart
val emptyMap: Map<String, Int> = emptyMap()
val emptyOrNull = emptyMap.ifEmpty { null }
println(emptyOrNull) // null
val emptyOrDefault: Map<String, Any> = emptyMap.ifEmpty { mapOf("s" to "a") }
println(emptyOrDefault) // {s=a}
val nonEmptyMap = mapOf("x" to 1)
val sameMap = nonEmptyMap.ifEmpty { null }
println("nonEmptyMap === sameMap is ${nonEmptyMap === sameMap}") // true
//sampleEnd
}