怎么用 ?.、?:和run 替换 if(x!=null)…else…_
说到空判断那就是?.
、?:
和下面这些代码被inline的函数
操作符 | 参数 | 返回 |
---|---|---|
let | it T->R | 用户指定返回 |
also | it | 原数据 |
apply | this | 原数据 |
run | this T->R | 用户指定返回 |
takeIf | predicate predicate==true | 返回原数据,否则返回null |
takeUnless | predicate predicate==false | 返回原数据,否则返回null |
但是还会经常看到诸如
if(x!=null){ ....}else{ ....}
对于有点洁癖的人来说总是有个疙瘩的,这特么想java嘛。 用?.
、?:
和run
来改写那就是这样的
x?.run { //run x!=null block} ?: run { //run x=null block}
现在没有if-else
判断非空了.^_^