Plain's Blog

休想打败我的生活🔥

  1. 1. ?.安全调用运算符
    1. 1.1. 图解
    2. 1.2. 解释
  2. 2. ?:
    1. 2.1. 图解
    2. 2.2. 解释
  3. 3. as? 安全转换运算符
    1. 3.1. 图解
    2. 3.2. 解释
  4. 4. !! 非空断言,不推荐使用
    1. 4.1. 图解
    2. 4.2. 解释
  5. 5. ? 可空类型
    1. 5.1. 图解
    2. 5.2. 解释
  6. 6. let函数和?.配合使用来处理可空表达式
    1. 6.1. 解释
  7. 7. 参考资料

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

本文作者 : Plain
This blog is under a CC BY-NC-SA 3.0 Unported License
本文链接 : https://plain-dev.com/kotlin-base-composite-symbol/

本文最后更新于 天前,文中所描述的信息可能已发生改变