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

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

相关文章

爱评论不评论

近期节日

2020年04月07日 世界卫生日
2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
2020年04月30日 全国交通安全反思日
2020年05月01日 国际劳动节
2020年05月04日 五四青年节
2020年05月05日 立夏
查看更多节日