본문 바로가기
코틀린/[Extraction] 추출 작업

[Kotlin][Collection] ifEmpty

by jinwo_o 2024. 8. 30.

비어 있지 않으면 이 배열을 반환하고, 배열이 비어 있으면 defaultValue 함수를 호출한 결과를 반환합니다.

public inline fun <C, R> C.ifEmpty(defaultValue: () -> R): R where C : Array<*>, C : R {
    contract {
        callsInPlace(defaultValue, InvocationKind.AT_MOST_ONCE)
    }
    return if (isEmpty()) defaultValue() else this
}


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) // true

 

ifEmpty - Kotlin Programming Language

 

kotlinlang.org

'코틀린 > [Extraction] 추출 작업' 카테고리의 다른 글

[Kotlin][Char] code  (0) 2024.09.03
[Kotlin][Iterable] chunked  (0) 2024.08.29
[Kotlin][String] substring  (0) 2024.08.28