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

更新日期: 2020-01-08 阅读次数: 216 字数: 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 聊聊。 白天工地搬砖,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

相关文章

爱评论不评论

近期节日

查看更多节日