美文网首页
Kotlin中 ? 和 !! 的区别,?和?:使用

Kotlin中 ? 和 !! 的区别,?和?:使用

作者: 牵手生活 | 来源:发表于2024-01-11 10:21 被阅读0次

    Kotlin中 ? 和 !! 的区别,?和?:使用

    !!是强制执行
    ? 对象为空不执行


    在 Kotlin 编程语言中,!!? 是与可空性(nullability)相关的操作符,它们用于处理可能为 null 的变量。

    1. !! 操作符:非空断言操作符
      当你对一个可空类型的变量使用 !! 操作符时,你是在告诉编译器这个变量在此处一定不会为 null。如果变量确实为 null,那么使用 !! 会导致程序抛出一个 NullPointerException。这是一种危险的操作,因为它可能会引入运行时错误,所以应该谨慎使用。

      例如:

      val name: String? = null
      println(name!!.length) // 这会抛出 NullPointerException
      
    2. ? 操作符:安全调用操作符
      ? 用在变量类型声明时表示变量可以持有 null 值。而在变量后面使用 ? 表示安全调用操作符,它允许你在不确定一个变量是否为 null 的情况下,安全地调用其方法或访问其属性。如果变量为 null,那么系统不会执行后续的方法调用或属性访问,而是直接返回 null

      例如:

      val name: String? = null
      println(name?.length) // 这不会抛出异常,输出为 null
      

    综上所述,!! 是一种断言,用于告诉编译器变量不可能为 null;而 ? 是一种安全检查,允许你在可能为 null 的变量上进行操作而不会抛出异常。在实际编程中,建议尽量避免使用 !!,以减少潜在的运行时错误。

    相关文章

      网友评论

          本文标题:Kotlin中 ? 和 !! 的区别,?和?:使用

          本文链接:https://www.haomeiwen.com/subject/zkdtodtx.html