美文网首页
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调Java代码和调kotlin代码总结

    java类参数和kotlin类为参数区别 kotlin使用Java代码的callback kotlin使用kotl...

  • Kotlin中?和!!的区别

    很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在Kotli...

  • Kotlin中 ? 和 !! 的区别

    在Kotlin中我们知道 var 是用来修饰变量 val 是用来修饰常量的 我们以前写Java的时候就经常遇到一个...

  • Kotlin数组

    数组在Kotlin中使用Array类来表示。下面巴拉一下Kotlin数组和Java数组的区别。Java中的数组通常...

  • Kotlin中 ? 和 !! 的使用

    首先明确在Kotlin中的变量定义 定义变量规则:var | val 变量名 [:类型] [= 初始值] 例:va...

  • Kotlin小知识

    Kotlin小知识 Kotlin 和 java 语法的区别

  • Kotlin 变量,常量,注释

    定义变量,常量 声明普通变量Kotlin 中定义变量,常量跟Java中有很大区别, kotlin中必须使用var,...

  • Kotlin中var和val区别

    前几天朋友圈刷爆了关于Kotlin成为Android官方语言的新闻,为了体验一下,开始学习Kotlin的基础语法。...

  • Kotlin中 lateinit和by lazy区别:

    一、前言: 在使用kotlin开发中,因为各种原因,我们会经常需要使用到延迟加载的功能,目前kotlin的延迟加载...

  • Java和Kotlin中的ViewStub用法

    Java和Kotlin中的ViewStub用法区别 XML布局如下: ViewStub viewstub_test...

网友评论

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

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