在查 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 聊聊, 查看更多联系方式