비어 있지 않으면 이 배열을 반환하고, 배열이 비어 있으면 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
'코틀린 > [Extraction] 추출 작업' 카테고리의 다른 글
[Kotlin][Char] code (0) | 2024.09.03 |
---|---|
[Kotlin][Iterable] chunked (0) | 2024.08.29 |
[Kotlin][String] substring (0) | 2024.08.28 |