/ Kotlin笔记  

Kotlin基础之"复合符号"

kotlin中引入了一些复合符号使用起来非常方便,这里总结一下

?.安全调用运算符

图解

解释

1
2
3
4
5
if(foo != null){
return foo.bar()
} else {
return null
}

通过代码可以很方便理解,当对象foo不为空则执行方法bar(),反之为null

?:

图解

解释

这里foobar是一个String字符,当foo不为空时则值为它本身,反之为bar。相当于为当foo为空时指定了一个默认值。

as? 安全转换运算符

图解

解释

尝试把值转换为指定的类型,如果不合适则返回null。可以和?:配合使用

1
2
`object` as? Person ?: "类型不符"
`object` as? Person ?: return false

!! 非空断言,不推荐使用

图解

解释

如果为null就抛出空指针异常,推荐使用?:,阻止程序在运行时报空指针异常

? 可空类型

图解

解释

指定当前对象是可空的

let函数和?.配合使用来处理可空表达式

解释

1
2
3
4
5
val strList:ArrayList<String>? = null

strList?.let {
println(it)
}

strList不为空时才会执行let内的方法

参考资料

https://blog.csdn.net/lckj686/article/details/80448471 图源
https://blog.csdn.net/baidu_31093133/article/details/81434181