kotlin 使用let与run结合,等价于if 与else

简介: Kotlin 中?.let{}?:run{} 等价于 if{}else{}

kotlin语言真的太好了,写起来很简约,很轻松,内联函数用起来很细滑,比如let。

val bean = Bean
bean?.let{
  Log.e(TAG,"bean不等于null")
}

我们使用let的时候,都是如上面的写法,但是但bean=null的时候,我们也需要输出日志,这个时候要怎么写的?
正常是这么修改的

val bean = Bean
if(null != bean){
  Log.e(TAG,"bean不等于null")
}else{
  Log.e(TAG,"bean等于null")
}

但是这样子就变回了if加else的语法,完全脱离let内联函数了,有没有别的写法呢,答案当然是有的,使用let+run结合,可以这么写

val bean = Bean
bean?.let{
  Log.e(TAG,"bean不等于null")
}?:run{
  Log.e(TAG,"bean等于null")
}

这样子即保留Kotlin的语法,也使用到了内联函数,以上?.let + ?:run 等价于if+else

相关文章
|
Kotlin
Kotlin - 标准函数(with、run和apply)
Kotlin - 标准函数(with、run和apply)
163 1
|
设计模式 Java Kotlin
Kotlin 中的 run 函数详解
Kotlin 中的 run 函数详解
532 0
|
安全 Kotlin
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
199 0
|
Kotlin
Kotlin中标准库函数(apply、let、run、with、also、takeIf、takeUnless)的使用详解
Kotlin中标准库函数(apply、let、run、with、also、takeIf、takeUnless)的使用详解
290 0
|
XML Java Android开发
Kotlin作用域函数let、with、run、apply、also
Kotlin作用域函数let、with、run、apply、also
157 0
|
存储 缓存 算法
Kotlin | 扩展函数(终于知道为什么 with 用 this,let 用 it)
Kotlin | 扩展函数(终于知道为什么 with 用 this,let 用 it)
598 0
Kotlin | 扩展函数(终于知道为什么 with 用 this,let 用 it)
|
Kotlin
Kotlin 作用域函数之let、with、run、also、apply的使用笔记
`Kotlin` 标准库包含几个函数,目的是在对象的上下文中执行代码块。**当对一个对象调用这样的函数并提供一个 `lambda` 表达式时,会形成一个临时作用域。在此作用域中,可以访问该对象而无需其名称。这些函数称为作用域函数**。共有以下五种:`let、run、with、apply 以及 also`。
486 0
|
C++ Kotlin Windows
Kotlin标准函数run with let also apply的区别
Kotlin标准函数run with let also apply的区别
Kotlin标准函数run with let also apply的区别
|
8月前
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
386 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
|
JSON 调度 数据库
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。文章详细解析了Kotlin中的协程、扩展函数、高阶函数、密封类及`inline`和`reified`关键字在Android开发中的应用,帮助读者更好地理解和使用这些特性。
430 1