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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式