Kotlin基础语法之Elvis操作符

Kotlin 的新手常常会被空值搞得头大,Elvis 操作符挺适合你入门时用来简化这些判断逻辑的。它长得像?:,说白了,就是“要是前面是 null,就用后面的值”——用起来又快又直观。

比如你拿到一个为 null 的对象,想取它的某个属性时,用a?.b ?: c,如果aa.b是 null,就直接用c,代码也简洁,响应也快。

Elvis经常跟安全调用符?.一起用。它们搭配起来,就像是空值界的黄金搭档。逻辑清楚:先试试看取值,要是没值,就给个备胎。

稍微复杂点的情况,比如你需要在null时做点,那也有招。你可以写个扩展函数,加点lambda逻辑进去:

inline infix fun  T?.ifNull(block: (T?) -> T): T {
  return this ?: block(this)
}
用法更灵活,适合稍复杂的默认逻辑。

用的时候要注意优先级,别被操作符顺序坑了。像val v = (a * b) ?: c,括号不能省,不然编译器可不会替你猜心思。

日常开发中,你还可以在流程控制里用,比如:stack.push(root ?: return list),这样写直观,代码可读性也高。

如果你正在学 Kotlin,或者写 Android 项目经常 null,Elvis 操作符真的是个你值得熟练掌握的小技巧。

哦对了,想看更深入的 null,也可以顺手看看这篇优雅告别 !! 操作符的文章,一起配着看更清楚。

pdf 文件大小:64.94KB