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