Kotlin基础语法之Elvis操作符
Kotlin 的新手常常会被空值搞得头大,Elvis 操作符挺适合你入门时用来简化这些判断逻辑的。它长得像?:
,说白了,就是“要是前面是 null,就用后面的值”——用起来又快又直观。
比如你拿到一个为 null 的对象,想取它的某个属性时,用a?.b ?: c
,如果a
或a.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,也可以顺手看看这篇优雅告别 !! 操作符的文章,一起配着看更清楚。
64.94KB
文件大小:
评论区