推荐答案
val result = nullableObject?.let {
// 在 let 块中,it 是非空的
it.doSomething()
// 返回一个新的值
"New Value"
} ?: "Default Value"本题详细解读
let 函数的基本用法
let 是 Kotlin 标准库中的一个扩展函数,通常用于在非空对象上执行操作。它的主要作用是允许你在一个非空对象上执行一段代码,并且可以返回一个新的值。
val nullableObject: String? = "Hello"
val result = nullableObject?.let {
// it 是非空的 String 类型
it.length
}在这个例子中,let 函数会在 nullableObject 非空时执行,it 表示这个非空对象。let 函数的返回值是 lambda 表达式的最后一行,即 it.length。
let 函数的链式调用
let 函数可以与其他函数链式调用,特别是在处理可空对象时非常有用。
val result = nullableObject?.let {
it.toUpperCase()
}?.let {
it.length
}在这个例子中,let 函数被链式调用,首先将字符串转换为大写,然后获取其长度。
let 函数的返回值
let 函数的返回值是 lambda 表达式的最后一行。如果 lambda 表达式没有显式返回值,则返回 Unit。
val result = nullableObject?.let {
println(it)
// 没有显式返回值,返回 Unit
}let 函数与空安全操作符结合
let 函数通常与空安全操作符 ?. 结合使用,以确保在对象非空时执行代码。
val result = nullableObject?.let {
it.doSomething()
"New Value"
} ?: "Default Value"在这个例子中,如果 nullableObject 为空,则 let 函数不会执行,最终 result 会被赋值为 "Default Value"。