Kotlin 变量名后面加双感叹号代表什么

更新日期: 2020-01-08 阅读次数: 9181 字数: 187 分类: Kotlin

在查 Kotlin 的 RecyclerView 用法时,发现一段令人费解的代码:

override fun getItemCount(): Int = list?.size!!

size 后面的双叹号代表什么呢?

双感叹号可以看作是程序员在当前代码行发了一个毒誓:

如果叹号前的变量为 null,就让上天抛出 NPE,让我的 Android 应用崩溃。

这是一个多么脑残的设计。。。

我都想象不出任何使用双叹号的场景。。。

测试代码

>>> var s: String? = null
>>> println(s)
null
>>> println(s!!)
kotlin.KotlinNullPointerException
>>>
>>> s = "domain name"
>>> println(s!!)
domain name

何时使用双感叹号

暂时没有想到。。。

golang 中不断检查返回值 err,那才是严谨的做法。

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式