Kotlin 'let' 用法
Kotlin 'let' usage
这段代码有区别吗:
fun isDogEating(): Boolean {
return dog?.let { return it.eating } ?: false
}
还有这个
fun isDogEating(): Boolean {
return dog?.eating ?: false
}
我遇到了类似第一个的问题,想知道这里的 let
是否多余。
行为上没有差异。
两个函数 return false
if dog == null
,因为最后的 ?: false
。
let
函数仅在dog != null
时执行。
同第二个例子中的eating
属性
请注意 let
lambda 中的 return
语句表示 return 来自 isDogEating
函数,而不是来自 lambda!从 lambda 到 return 可以使用 return@let
或只是表达式
我更喜欢较短的版本:
fun isDogEating() = dog?.eating ?: false
这段代码有区别吗:
fun isDogEating(): Boolean {
return dog?.let { return it.eating } ?: false
}
还有这个
fun isDogEating(): Boolean {
return dog?.eating ?: false
}
我遇到了类似第一个的问题,想知道这里的 let
是否多余。
行为上没有差异。
两个函数 return false
if dog == null
,因为最后的 ?: false
。
let
函数仅在dog != null
时执行。
同第二个例子中的eating
属性
请注意 let
lambda 中的 return
语句表示 return 来自 isDogEating
函数,而不是来自 lambda!从 lambda 到 return 可以使用 return@let
或只是表达式
我更喜欢较短的版本:
fun isDogEating() = dog?.eating ?: false