orEmpty 函数
1、基本介绍
- orEmpty 函数是一个用于处理可空对象的扩展函数,当对象为 null 时,它会返回一个对应类型的空实例
@kotlin.internal.InlineOnly
public inline fun String?.orEmpty(): String = this ?: ""
@kotlin.internal.InlineOnly
public inline fun <T> List<T>?.orEmpty(): List<T> = this ?: emptyList()
@kotlin.internal.InlineOnly
public inline fun <T> Set<T>?.orEmpty(): Set<T> = this ?: emptySet()
@kotlin.internal.InlineOnly
public inline fun <K, V> Map<K, V>?.orEmpty(): Map<K, V> = this ?: emptyMap()
public actual inline fun <reified T> Array<out T>?.orEmpty(): Array<out T> = this ?: emptyArray<T>()
2、基本使用
val s: String? = null
println(s.orEmpty())
println(s.orEmpty().length)
# 输出结果
0
val list: List<Int>? = null
println(list.orEmpty())
println(list.orEmpty().size)
# 输出结果
[]
0
val set: Set<String>? = null
println(set.orEmpty())
println(set.orEmpty().size)
# 输出结果
[]
0
val map: Map<Int, String>? = null
println(map.orEmpty())
println(map.orEmpty().size)
# 输出结果
{}
0
val arr: Array<Int>? = null
println(arr.orEmpty().contentToString())
println(arr.orEmpty().size)
# 输出结果
[]
0
ifEmpty 函数、ifBlank 函数、takeIf 函数
val handleContent = if (etHandleContent.text.toString().isEmpty()) {
null
} else {
etHandleContent.text.toString()
}
val handleContent = if (etHandleContent.text.toString().isBlank()) {
null
} else {
etHandleContent.text.toString()
}
String handleContent = etHandleContent.getText().toString().isEmpty() ? null : etHandleContent.getText().toString();
String handleContent = etHandleContent.getText().toString().isBlank() ? null : etHandleContent.getText().toString();
val handleContent = etHandleContent.text.toString().ifEmpty { null }
val handleContent = etHandleContent.text.toString().ifBlank { null }
val handleContent = etHandleContent.text.toString().takeIf { it.isNotEmpty() }
val handleContent = etHandleContent.text.toString().takeIf { it.isNotBlank() }





