空安全设计的操作符号
操作符 | 作用 |
? |
可空操作符,声明该值可为空 |
?. |
安全调用操作符 b?.length 如果b非空,就返回b.length,否则返回 null |
!! |
非空断言运算符,将任何值转换为非空类型,若该值为空则抛出异常 val t = b!!.length |
?.let{} | ?. 与let一起使用,用于遍历集合时,则忽略null值,只对非空值执行操作 |
?: |
Elvis操作符 val t = b?.length ?: -1 如果 ?: 左侧表达式(b?.length)非空,elvis 操作符就返回其左侧表达式,否则返回右侧表达式(-1) |
as? |
val aInt:Int? = a as? Int 如果对象不是目标类型,如果尝试转换不成功则返回null |
filterNotNull() | 如果有一个可空类型元素的集合,想要过滤非空元素,可以使用filterNotNull 来实现 |