Kotlin的空安全

语言中对空值的检测是为了避免出现空指针的异常。

在类型的最后增加一个问号可以指定一个变量可以为null;因为在kotlin中一切都是对象,甚至java中的原始数据类型,一切都可以是null的。
val a:Int?=null
这样就标记了 a是一个可以为null的变量,在没有进行检查是否为null之前是不能直接使用它的。

判断是否为空的方法很多,可以使用if语句去判断,kotlin给我们比较简单的方法,安全访问操作符(?)。

val a:Int?=null
....
a?.tostring()

这里使用了安全访问操作符(?),只有这个变量不是null的时候才去指定这行代码,否则的话不会执行这行代码。

Elvis operator(?:)

这个操作符可以判断是否为空,如果为空可以做一些操作。

val a:Int?=null
val s=a?.toString() ?:"sss"
val t=a?.toString()?:return false
val x=a?.toSting()?:throw IllegalStateException()

这个操作符的作用就是,当a为空的时候,执行?:后边的语句,例如上段代码的第二句,anull,那么s就被赋值为"sss";第三句anull,那么当前语句所在的方法就会返回false;第四句anull,那么就会抛出IllegalStateException()异常。

跳过限制检查的操作符(!!

如果我们在使用一个可null的类型的变量,但是可以确定这个变量是非null的,那么我们就可以使用!!操作符来强制编译器执行可null类型时跳过限制检查。但是如果a为null的话,这段代码就会崩溃。

val a: Int? = null
val s=a!!.toString()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,276评论 9 118
  • 背景既然Google官方已经宣布Kotlin为Android官方语言,我觉得,那就没什么可争议的,作为Androi...
    我想吃碗牛肉面阅读 697评论 0 1
  • Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Google玩儿An...
    蓝灰_q阅读 77,004评论 31 489
  • 主从概述 redis 支持 master-slave(主从)模式,redis server 可以设置为另一个 re...
    jiangmo阅读 713评论 0 0
  • 夜,如此的安静!窗外曾啁啾不休的秋虫不知从哪天开始已肃静躲藏。抑或,是在等着化蝶吗? ...
    南飞雨燕阅读 995评论 31 47